标题: [文件操作] [已解决]求助批处理EXCEL数据修改 [打印本页]
作者: liaoguinan 时间: 2024-10-22 23:56 标题: [已解决]求助批处理EXCEL数据修改
本帖最后由 liaoguinan 于 2024-10-23 20:19 编辑
有没有办法通过判断B列的数据以及A列的数据得出C列的数据
作者: Five66 时间: 2024-10-23 01:21
可以 ,相当于根据B列汇总了
作者: idwma 时间: 2024-10-23 13:26
- #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
- $fn='aaaaaa.xlsx'
- $a=new-object -com excel.application
- $a.visible=1
- $b=$a.workbooks.open("$(dir $fn)")
- $c=$b.sheets.item(1)
- $d=$c.usedrange
- $e=@{}
- for($i=4;$i -lt $d.count;$i+=3){
- $f=$d.cells.item($i)
- $e[$f.next.text]+=,$f.text
- }
- $i=3
- $e.keys|%{$d.cells.item(($i+=3)).value()="$_ "+($e[$_] -join '、')}
复制代码
如果内容太多用转csv的方式会快一点
作者: idwma 时间: 2024-10-23 15:27
发现以前理解错了,不用转格式也可以很快。- #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
- $fn='aaaaaa.xlsx'
- $a=new-object -com excel.application
- $a.visible=1
- $b=$a.workbooks.open("$(dir $fn)")
- $c=$b.sheets.item(1)
- $d=$c.usedrange.cells.value()
- $i=$d.length/($d.rank+1)
- $e=@{}
- 1..$i|%{$e[$d[$_,2]]+=,$d[$,1]}
- $i=1
- $e.keys|%{$d[($i+=1),3]="$_ "+($e[$_] -join '、')}
- $c.usedrange.cells.value()=$d
复制代码
作者: liaoguinan 时间: 2024-10-23 20:19
回复 3# idwma
这个能实现下面那个代码就出错了
作者: idwma 时间: 2024-10-24 11:40
第10行漏了个下划线补上应该可以了- 1..$i|%{$e[$d[$_,2]]+=,$d[$_,1]}
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |