Board logo

标题: [文本处理] 关于批处理操作EXCLE的一些命令。 [打印本页]

作者: cuisentong    时间: 2020-11-6 17:59     标题: 关于批处理操作EXCLE的一些命令。

以上是表格内容。
项目经理要求我在B列前插入一列,并将A1的数据填在A2,A2的数据填入新插入的B2,并在B1里输入“时间”,I1中输入账上余额。
一共400多份表格,因为我只知道BAT的一些皮毛没有深入的去学习BAT操作EXCLE,所以恳求各位大佬帮帮忙,悲惨社畜在这里给各位先道个谢。
若是能处理有偿也可以。
作者: yhcfsr    时间: 2020-11-6 18:30

你要说详细些,处理前是什么,处理后是什么。
你说的处理规则与图片不一样。
越详细、越准确,问题解决的越快。
最好上传一段样本。
作者: zaqmlp    时间: 2020-11-6 18:55

报酬多少呢?
作者: cuisentong    时间: 2020-11-6 18:57

回复 2# yhcfsr


    我上传的图片是没处理的表格
在没处理的表格中,项目经理要求我:
1. 在B列前插入一列,并在新插入的列中第1格里写上“时间”。
2. 图片中A2是“2004年余额”,项目经理要求把A2的内容填到新的B2下,也就是“时间”这一列。
3. 并把A1的内容“沭南公司~~”剪切到A2中。
4. 在I列的I1单元格中填上“账上余额”
作者: cuisentong    时间: 2020-11-6 19:01

回复 3# zaqmlp


    50~100的红包吧。
别骂我就行,我也就是个打工人。
作者: zaqmlp    时间: 2020-11-6 19:28

回复 5# cuisentong
  1. /*&cls
  2. @echo off
  3. cd /d "%~dp0"
  4. where *.xls *.xlsx 2>nul|cscript -nologo -e:jscript "%~f0"
  5. pause
  6. exit
  7. */
  8. var fso=new ActiveXObject('Scripting.FileSystemObject');
  9. var excel=null;
  10. try{
  11.     excel=new ActiveXObject('Excel.Application');
  12. }catch(e){WSH.echo('MS Excel is not installed');WSH.Quit();}
  13. excel.DisplayAlerts=false;
  14. excel.Visible=true;
  15. while(!WSH.StdIn.AtEndOfStream){
  16.     var line=WSH.StdIn.ReadLine();
  17.     var xlsfile=fso.GetFile(line);
  18.     if(xlsfile.Name.substring(0,2) != '~$'){
  19.         WSH.echo(line);
  20.         var wbook=excel.Workbooks.Open(xlsfile.Path);
  21.         var wsheet=wbook.Worksheets(1);
  22.         wsheet.Columns('B').Insert(-4159);
  23.         wsheet.Range('B1').Value='时间';
  24.         wsheet.Range('B2').Value=wsheet.Range('A2').Value;
  25.         wsheet.Range('A2').Value=wsheet.Range('A1').Value;
  26.         wsheet.Range('A1').Value='';
  27.         wsheet.Range('I1').Value='账上余额';
  28.         wbook.Save();
  29.         wbook.Close();
  30.     }
  31. }
  32. excel.Quit();
  33. WSH.Quit();
复制代码

作者: cuisentong    时间: 2020-11-6 19:37

回复 6# zaqmlp


    兄弟给个微信,以后有需求还会联系你。

而且我初学者这代码我目前还看不懂,400多份表格是存放在目标路径中,我看不到这段代码哪里可以吧目标路径塞进去。
作者: yhcfsr    时间: 2020-11-6 19:38

  1. #&cls&@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
  2. $src_dir = './'; #源目录
  3. $files = Get-ChildItem -Path './' -Filter '*.xls' -Recurse -File
  4. foreach($file in $files)
  5. {
  6.     $xl=New-Object -ComObject Excel.Application
  7.     $xl.Visible = $false
  8.     $wb=$xl.workbooks.open($file.FullName)
  9.     $ws = $wb.worksheets.Item(1)
  10.     $ColumnSelect = $ws.Columns("B:B")
  11.     $ColumnSelect.Insert()
  12.     $ws.Cells.Item(1,2) ='时间'
  13.     $ws.Cells.Item(2,2) =$ws.Cells.Item(2,1)
  14.     $ws.Cells.Item(2,1) = $ws.Cells.Item(1,1)
  15.     $ws.Cells.Item(1,1)=$null
  16.     $ws.Cells.Item(1,9) = '账上余额'
  17.     $wb.Save()
  18.     $xl.Quit()
  19.     while([System.Runtime.Interopservices.Marshal]::ReleaseComObject([System.__ComObject]$xl)){'released'| Out-Null}
  20. }
复制代码
用法:设置源目录(如果脚本与文件同目录,则不用改),保存为bat执行。
作者: zaqmlp    时间: 2020-11-6 19:39

回复 7# cuisentong
微信号发私信,bat跟表格放一起,注意备份原文件
作者: cuisentong    时间: 2020-11-6 20:14

回复 8# yhcfsr

谢谢兄弟
    $src_dir = 'C:\Users\崔森桐\Desktop\沭城镇其他应收款\非税转入\0121沭南工商总公司计生服务站-非税转入./'; #源目录
这样使用正确吗?
还有这400份表格是放在“非税转入”这个父文件夹下面的,然后每个表格又分别建了一个名字相同的文件夹把表格放在里面,是否这个代码我要复制400多次在TXT文件里,然后每个文件夹一个路径呢?
作者: cuisentong    时间: 2020-11-6 20:14

回复 9# zaqmlp


    谢谢 我这就试一下,还在加班,回复的有点慢,不好意思。
作者: yhcfsr    时间: 2020-11-6 21:58

回复 10# cuisentong


    不用的,假如你设置源目录为A, 它处理A目录下包括子目录中的所有excel文件.当然这是修改源文件, 所以测试时要备份文件.
作者: cuisentong    时间: 2020-11-7 00:28

回复 12# yhcfsr


    好的谢谢大佬 已经解决!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2