Board logo

标题: [文本处理] 求批处理删除目录下的表格,某一列空白的部分,还有批量更换某一列的数据 [打印本页]

作者: 意外之外    时间: 2022-8-11 12:00     标题: 求批处理删除目录下的表格,某一列空白的部分,还有批量更换某一列的数据

1,这个目录下有很多表格,每张表格里面”录音名称“和”录音路径“有的是空白,基本是对应的,名称是空白路径也是空白。
能否批量把目录下所有的表格里面。这些空白的整行删掉?补充下表格格式,文件类型 XLS 工作表 (.csv)




2,还是这个目录下所有的表格,把表格里面的工号全部替换成新的。
范威亚        ZZ001
周栋栋        ZZ002
段胜男        ZZ003
张婷        ZZ004
张功政        ZZ005
谭圆圆        ZZ006
侯强科        ZZ007
杜亚明        ZZ008
潘施茂        ZZ009
杨乐        ZZ010
杜克新        ZZ011
李宁宁        ZZ012
赵攀        ZZ013
陈文博        ZZ014
常文慧        ZZ015
鲁衡        WH001
康毅        WH002
潘飞        WH007
郭枭        WH006
侯晓波        WH003
詹全秀        WH004
马彬彬        WH005
林后文        FZ001
颜如竹        FZ002
陈航        FZ003
林明        FZ004
吴兰兰        FZ005
朱鸿        FZ006
林丽娜        FZ007
林强明        FZ008
林华        FZ009
叶玉贞        FZ010
于洋        ZZ016
刘琪        WH015
李颜        WH016
李民根        FZ015
王艳        ZZ018
韦静深        ZZ019
李玲        ZZ020
寇浩杰        ZZ021
李林        ZZ022
孟硕佳        ZZ023
石良德        HZ001
郁海燕        HZ002
唐建松        HZ003
银飞飞        HZ004
王晓廷        HZ005
王宁        HZ006
许榕榕        FZ016



我用WPS里面的表格合并功能,可以把所有表格合并处理,可以把空白的统一删掉,工号统一匹配,但是无法分开,WPS分表格只能按”列“的相同值去分,所以只能求助各位大神了!在此谢过!
作者: flashercs    时间: 2022-8-11 15:56

本帖最后由 flashercs 于 2022-8-11 19:33 编辑

批处理保存ANSI编码,放到csv 目录下.
  1. <#*,:&cls
  2. @echo off
  3. cd /d "%~dp0"
  4. powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
  5. pause
  6. exit /b
  7. #>
  8. # 新工号列表
  9. $data = @"
  10. 范威亚        ZZ001
  11. 周栋栋        ZZ002
  12. 段胜男        ZZ003
  13. 张婷        ZZ004
  14. 张功政        ZZ005
  15. 谭圆圆        ZZ006
  16. 侯强科        ZZ007
  17. 杜亚明        ZZ008
  18. 潘施茂        ZZ009
  19. 杨乐        ZZ010
  20. 杜克新        ZZ011
  21. 李宁宁        ZZ012
  22. "@
  23. $dic = @{}
  24. foreach ($line in $data.Trim() -split '\r?\n') {
  25.   $k, $v = -split $line
  26.   $dic[$k] = $v
  27. }
  28. Get-ChildItem .\*.csv | ForEach-Object {
  29.   $_ | Resolve-Path -Relative
  30.   (Import-Csv -LiteralPath $_.FullName -Encoding Default) | ForEach-Object {
  31.     # 更改工号
  32.     $userName = $_.坐席姓名
  33.     if ($dic.ContainsKey($userName)) {
  34.       $_.坐席工号 = $dic[$userName]
  35.     }
  36.     $_.外包序列号 = $_.外包序列号 -replace '^GF[^-]*-'
  37.     $_
  38.   } | Export-Csv -LiteralPath $_.FullName -Encoding Default -NoTypeInformation  
  39. }
复制代码

作者: 意外之外    时间: 2022-8-11 17:56

回复 2# flashercs


大哥太NB了。。跪谢!跪谢!一下就实现目的了。但是现在出现了一些变动,不需要删除空白了。。bat文件我试着删除几行后无法运行了。能不能麻烦大哥在更改一下,把删除空白的去掉。。只要替换工号就行了。。

还有个小请求,就是这列”外包序列号“,需要把前面的”GF20220114-“全部替换成空白,从00开始。。  


大哥方便的话能在伸出一下援手吗
作者: flashercs    时间: 2022-8-11 19:36

回复 3# 意外之外


    楼上已修改了.




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