Board logo

标题: [文本处理] 批处理如何提取xls工作表名称? [打印本页]

作者: Livesay    时间: 2021-5-30 12:11     标题: 批处理如何提取xls工作表名称?

如何用批处理命令提取Excel表格里多个工作表的名称,输出到txt中?
作者: yhcfsr    时间: 2021-5-30 17:16

本帖最后由 yhcfsr 于 2021-5-30 17:19 编辑
  1. #&cls&@powershell -v 2 -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
  2. #用户设置
  3. $src_dir = './'; #源目录
  4. $txt = './输出.txt'
  5. #==============================================================
  6. $files = Get-ChildItem -Path './' -Filter '*.xls' -Recurse
  7. $xl=New-Object -ComObject Excel.Application
  8. $xl.Visible = $false
  9. $xl.displayAlerts = $false
  10. [System.Collections.ArrayList] $ret=@()
  11. foreach($file in $files)
  12. {
  13.     $wb=$xl.workbooks.open($file.FullName,3)#打开表格
  14.     $sheets = $wb.worksheets
  15.     [void]$ret.Add($file.FullName)
  16.     for($i=1;$i -le $sheets.Count;$i++)
  17.     {
  18.         [void]$ret.Add($sheets.Item($i).Name)
  19.     }
  20.     $xl.Workbooks.close()
  21. }
  22. $xl.Quit()
  23. $xl = $null
  24. [GC]::Collect()
  25. Out-File -FilePath $txt -InputObject $ret -Encoding default
复制代码
1. 根据实情修改用户设置
2.保存为bat,执行
3.实用于WIN7 及以上系统




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