标题: [文件操作] 批量整理归类excel中的数据 [打印本页]
作者: 星空独子 时间: 2019-12-17 18:16 标题: 批量整理归类excel中的数据
有很多文件编码的文件,如图中圈出的数字。(只针对此文件夹,不遍历子文件夹)
将文件编码批处理放在新建的excel中的第一行,然后分别在文件编码所对应的列写入该文件指定的数值(空白的地方被我删除不代表没有数据,只是我不需要采集),首先采集第一页,67B-72B的数据舍弃,其次采集第二页,第二页指定的数据按先从上往下,后从左往右,接在第一页数据后边。
最终的结果如下所示
作者: terse 时间: 2019-12-18 10:01
看了一下 空白的地方的既然是有数据的 那怎么判断它是不需提去的 根据你提供的行号吗
作者: 星空独子 时间: 2019-12-18 21:06
回复 2# terse
其实不用判断,我在V301-P11-430-_3_JJ1-17-December-2019-15-12-11这份文件中已经罗列出我需要的数据,这些数据中的每一个数据都有它唯一的页码和单元格,只要按照我的逻辑放置到新的excel中
作者: WHY 时间: 2019-12-19 16:46
Test.js- var srcDir = 'E:\\Test'; //存放xls文件的源目录名
- var dstFile = 'E:\\result.xlsx'; //保存的文件名
- var exclude = [1,3,8,11,26,33,42,46,47,51,54,58,62,66,67,68,69,70,71,72,73]; //sheet1 要排除的行号
-
- var objExcel = new ActiveXObject('Excel.Application');
- var objNewBook = objExcel.WorkBooks.Add();
- objExcel.Visible = false;
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var e = new Enumerator( fso.GetFolder(srcDir).Files );
-
- Array.prototype.isInArray = function(a){
- for(var i=0; i<this.length; i++)if(this[i]==a)return true;
- return false;
- }
-
- var y = 0;
- for(; !e.atEnd(); e.moveNext()){
- var strFile = e.item().Path;
- var m = e.item().Name.match(/^[^-]+-[^-]+-[^-]+-_(\d+).*\.xlsx?$/i);
- if( !m ) continue;
- var x = 0; y++;
- objNewBook.WorkSheets(1).Cells(++x,y).Value = m[1]; //文件名中的编号
- var objBook = objExcel.WorkBooks.Open(strFile);
- var objSheet1 = objBook.WorkSheets(1);
- var objSheet2 = objBook.WorkSheets(2);
- var rows1 = objSheet1.UsedRange.Rows.Count + 1; //sheet1 行数
- var rows2 = objSheet2.UsedRange.Rows.Count + 1; //sheet2 行数
- var colm2 = objSheet2.UsedRange.Columns.Count + 1; //sheet2 列数
- for(var i=1; i<=rows1; i++){
- if( exclude.isInArray(i) ) continue;
- objNewBook.WorkSheets(1).Cells(++x,y).Value = objSheet1.Cells(i,2).Value;
- }
- for(var i=2; i<=colm2; i++){
- for(var j=2; j<=rows2; j++){
- objNewBook.WorkSheets(1).Cells(++x,y).Value = objSheet2.Cells(j,i).Value;
- }
- }
- objBook.Close();
- }
-
- objNewBook.SaveAs(dstFile, 51); //保存文件
- objNewBook.Close();
- objExcel.Quit();
-
- WSH.Echo('Done')
复制代码
作者: 菜yang 时间: 2019-12-23 20:18
来看看学习学习
作者: 星空独子 时间: 2019-12-23 22:25
回复 4# WHY
运行程序后出现如下情况,不知道该如何解决,我把文件保存的时候时保存为test.js
作者: WHY 时间: 2019-12-24 09:56
根据错误提示,猜都能猜得到,行 9 的路径就是变量 srcDir 的值,修改第一行的值不就行了?
作者: 星空独子 时间: 2019-12-24 16:17
回复 7# WHY
关于路径,我是更改为自己的路径后出现的这个问题。
作者: WHY 时间: 2019-12-24 18:58
回复 8# 星空独子
提示已经很明确了,就是你的路径错误。
js路径字符为双反斜杠,比如:srcDir = 'E:\\Test\\abc\\123'
作者: 星空独子 时间: 2019-12-24 19:19
回复 9# WHY
我是把路径直接复制过来的,存在双斜杠的差异,但是还存在一个问题,就是第二页的数据没有按规则导入至result.xls中
作者: WHY 时间: 2019-12-24 20:41
回复 10# 星空独子
因为你顶楼给的样本与你实际的xls文件不一样。
你自己改脚本,你也可以不用。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |