[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 【已解决】powershell操作excel保存时出错,求指导

本帖最后由 for_flr 于 2022-3-22 14:56 编辑

求助论坛大佬
我通过一些过程得到一组数据 $list :
  1. 姓名 记录时间 年龄 身高 体重 地点 备注
  2. A 3/14 20 160 60 云南 无异常
  3. B 3/17 19 170 50 广西 无异常
  4. C 3/14 35 160 50 广东 无异常
  5. D 3/14 34 160 50 上海 无异常
  6. E 3/17 33 160 70 辽宁 无异常
  7. F 3/17 28 160 90 吉林 无异常
  8. G 3/14 30 160 60 内蒙 无异常
  9. 小张 3/16 15 160 80 新疆 无异常
  10. 老王 3/17 19 160 40 西藏 无异常
  11. 阿妹 3/14 32 180 60 甘肃 无异常
复制代码
想将其写进excel表格里,并加上框线,第一行字体加粗。
  1. $list|out-file ccc.xls
  2. #out-file ccc.xls 可以瞬间将数据写进表格,问题出在后面。
  3. $f=gi ccc.xls
  4. $excel=new-object -com excel.application
  5. $excel.visible=$true
  6. $wk=$excel.workbooks.open($f)
  7. $st=$wk.sheets.item(1)
  8. $st.usedrange.borders.linestyle=1
  9. $st.usedrange.borders.weight=2
  10. $st.range("A1:G1").font.bold=$true
  11. [void]$st.usedrange.entirecolumn.autofit()
  12. $wk.save()
  13. $wk.close()
  14. #这里老是要跳出提示框
  15. #“是否保存对ccc.xls的更改?”
  16. $excel.quit()
  17. $st=$wk=$excel=$r=$c=$null
  18. [gc]::collect()
复制代码


不管点是、否、取消,在打开ccc.xls时候都没有加上框线和黑体...
并且在打开ccc.xls时有这个提示

网上搜索了一两天,没搞定。
if版主二楼提示版本问题,现在可以通过手动打开ccc.xls,另存为一次可解决,但我无法用代码自动化实现

不用out-file生成xls,用workbooks.add()是完全可行的,但是速度巨慢!!不知为何。
  1. $r=$c=1
  2. $excel=new-object -com excel.application
  3. $excel.visible=$true
  4. $wk=$excel.workbooks.add()
  5. $st=$wk.sheets.item(1)
  6. $list|%{
  7.   foreach($i in $_.split()){
  8.     $st.cells.item($r,$c)=$i
  9.     $c++
  10.   }
  11. $r++
  12. $c=1
  13. }
  14. $st.usedrange.borders.linestyle=1
  15. $st.usedrange.borders.weight=2
  16. $st.range("A1:G1").font.bold=$true
  17. [void]$st.usedrange.entirecolumn.autofit()
  18. $wk.saveas("C:\Users\lenovo\Desktop\tmp.xls")
  19. $wk.close()
  20. $excel.quit()
  21. $st=$wk=$excel=$r=$c=$null
  22. [gc]::collect()
复制代码
初学powershell,这两个代码不知道是哪些地方没弄对,希望得到前辈大佬的帮助,谢谢。

本帖最后由 for_flr 于 2022-3-18 17:36 编辑

回复 2# 523066680


    哇,if版主好久不见!
我把ccc.xls先手动另存为97~2003版本,ccc.xls
或者默认格式ccc.xlsx
相应改动脚本再运行就不会出现那两个提示框。感谢指点。
具体存啥版本好像是参数支持,我去翻一翻。

TOP

回复 3# 5i365


    跟office估计大同小异,主要还是我自己经验不足,遇到问题晕头转向,难以排错。。。

TOP

返回列表