Board logo

标题: [文本处理] 如何使用脚本命令给xls这类表格文件添加数据? [打印本页]

作者: toyerspollors    时间: 2022-1-20 20:04     标题: 如何使用脚本命令给xls这类表格文件添加数据?

请教各位老师,如何使用脚本命令给xls这类表格文件添加数据?

比如目录下有好一堆xls文件,

我想批量处理表格,在表格的横列的G前面插入1列(最好可以自定义列数),然后再竖行6插入1行(最好可以自定义列数),

接着在单元格F5输入内容“批处理之家”,最好这个单元格能添加背景黄颜色,字体加粗,红颜色。

貌似要求有些多,不知道这样的要求能达到吗?
作者: idwma    时间: 2022-1-21 23:28

本帖最后由 idwma 于 2022-1-22 20:22 编辑
  1. #@&cls&powershell "type %~s0|out-string|iex"&pause&exit
  2. $r='a5'
  3. $c='f1'
  4. $d='f5'
  5. $t='abc'
  6. dir 123.xls|%{
  7. $a=(new-object -comobject excel.application).workbooks.open($_.fullname)
  8. $b=$a.sheets.item(1)
  9. $b.range($r).EntireRow.insert()
  10. $b.range($c).Entirecolumn.insert()
  11. $row=$b.range($d).row
  12. $column=$b.range($d).column
  13. $b.cells.item($row,$column)=$t
  14. $b.Range($d).interior.colorindex=6
  15. $b.Range($d).font.colorindex=3
  16. $b.Range($d).font.bold=$true
  17. $a.save()
  18. $a.close()
  19. }
复制代码

作者: toyerspollors    时间: 2022-1-22 20:22

idwma 发表于 2022-1-21 23:28


实在惭愧!看起来不是bat的命令,不知老师写出来的是什么脚本代码,我要如何使用?
作者: toyerspollors    时间: 2022-1-28 20:01

不知道问题是不是太刁难了,感觉自己问的问题比较偏门,好像这里没什么人需要处理xls文件的。
作者: flashercs    时间: 2022-1-29 00:21

回复 4# toyerspollors
  1. <#*,:&cls
  2. @echo off
  3. cd /d "%~dp0"
  4. powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
  5. pause
  6. exit /b
  7. #>
  8. # 功能: 处理当前目录的xls文件
  9. $r = '6:6' # 要插入的行
  10. $c = 'G:G' # 要插入的列
  11. $d = 'F5'  # 更改单元格
  12. $t = '批处理之家' # 更改的内容
  13. $xlShiftDown = -4121
  14. $xlShiftToRight = -4161
  15. $xlFormatFromLeftOrAbove = 0
  16. $xlFormatFromRightOrBelow = 1
  17. $excel = New-Object -ComObject excel.application
  18. $excel.Visible = $true #显示excel窗口
  19. $excel.DisplayAlerts = $false
  20. Get-ChildItem .\*.xls, .\*.xlsx | ForEach-Object {
  21.   $workbook = $excel.workbooks.open($_.fullname)
  22.   $worksheet = $workbook.sheets.item(1) # 操作第一表格 Sheet1
  23.   $worksheet.range($c).insert($xlShiftToRight, $xlFormatFromLeftOrAbove) #插入列
  24.   $worksheet.range($r).insert($xlShiftDown, $xlFormatFromLeftOrAbove) #插入行
  25.   $range = $worksheet.Range($d)
  26.   $range.Value() = $t #更改内容
  27.   $range.interior.colorindex = 6 #单元格背景色
  28.   $range.font.colorindex = 3 #单元格字体色
  29.   $range.font.bold = $true #加粗
  30.   [void]$workbook.save() #保存xls
  31.   $workbook.close()
  32. }
  33. $excel.Quit()
复制代码
保存为 a.bat
作者: toyerspollors    时间: 2022-1-29 01:32

本帖最后由 toyerspollors 于 2022-1-29 01:36 编辑

原来2楼的也是批处理命令,我还以为是其他的东东,所以没测试,真知识真是没底了,好多东西都没接触过。

谢谢flashercs、idwma的帮助。

不知道老师写出来的这些命令有没有基础入门学习资料的链接啊?

如果在执行以上命令之前,我要先删除B列,2行,再删除G7单元格,不知道如何修改添加相关命令,望老师指教!
作者: 523066680    时间: 2022-1-29 09:08

Win32 OLE
作者: 523066680    时间: 2022-1-29 09:08

Win32 OLE
作者: flashercs    时间: 2022-1-29 09:57

回复 6# toyerspollors
  1. $worksheet.Columns("B").Delete()
  2. $worksheet.Rows(2).Delete()
  3. $worksheet.Range("G7").ClearContents()
复制代码
去微软官方网站 学习vba




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