标题: [文本处理] 关于批处理操作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 - /*&cls
- @echo off
- cd /d "%~dp0"
- where *.xls *.xlsx 2>nul|cscript -nologo -e:jscript "%~f0"
- pause
- exit
- */
- var fso=new ActiveXObject('Scripting.FileSystemObject');
- var excel=null;
- try{
- excel=new ActiveXObject('Excel.Application');
- }catch(e){WSH.echo('MS Excel is not installed');WSH.Quit();}
- excel.DisplayAlerts=false;
- excel.Visible=true;
- while(!WSH.StdIn.AtEndOfStream){
- var line=WSH.StdIn.ReadLine();
- var xlsfile=fso.GetFile(line);
- if(xlsfile.Name.substring(0,2) != '~$'){
- WSH.echo(line);
- var wbook=excel.Workbooks.Open(xlsfile.Path);
- var wsheet=wbook.Worksheets(1);
- wsheet.Columns('B').Insert(-4159);
- wsheet.Range('B1').Value='时间';
- wsheet.Range('B2').Value=wsheet.Range('A2').Value;
- wsheet.Range('A2').Value=wsheet.Range('A1').Value;
- wsheet.Range('A1').Value='';
- wsheet.Range('I1').Value='账上余额';
- wbook.Save();
- wbook.Close();
- }
- }
- excel.Quit();
- WSH.Quit();
复制代码
作者: cuisentong 时间: 2020-11-6 19:37
回复 6# zaqmlp
兄弟给个微信,以后有需求还会联系你。
而且我初学者这代码我目前还看不懂,400多份表格是存放在目标路径中,我看不到这段代码哪里可以吧目标路径塞进去。
作者: yhcfsr 时间: 2020-11-6 19:38
- #&cls&@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
-
- $src_dir = './'; #源目录
-
- $files = Get-ChildItem -Path './' -Filter '*.xls' -Recurse -File
- foreach($file in $files)
- {
- $xl=New-Object -ComObject Excel.Application
- $xl.Visible = $false
- $wb=$xl.workbooks.open($file.FullName)
- $ws = $wb.worksheets.Item(1)
- $ColumnSelect = $ws.Columns("B:B")
- $ColumnSelect.Insert()
- $ws.Cells.Item(1,2) ='时间'
- $ws.Cells.Item(2,2) =$ws.Cells.Item(2,1)
- $ws.Cells.Item(2,1) = $ws.Cells.Item(1,1)
- $ws.Cells.Item(1,1)=$null
- $ws.Cells.Item(1,9) = '账上余额'
- $wb.Save()
- $xl.Quit()
- while([System.Runtime.Interopservices.Marshal]::ReleaseComObject([System.__ComObject]$xl)){'released'| Out-Null}
- }
复制代码
用法:设置源目录(如果脚本与文件同目录,则不用改),保存为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://www.bathome.net/) |
Powered by Discuz! 7.2 |