本帖最后由 for_flr 于 2022-3-22 14:56 编辑
求助论坛大佬
我通过一些过程得到一组数据 $list :- 姓名 记录时间 年龄 身高 体重 地点 备注
- A 3/14 20 160 60 云南 无异常
- B 3/17 19 170 50 广西 无异常
- C 3/14 35 160 50 广东 无异常
- D 3/14 34 160 50 上海 无异常
- E 3/17 33 160 70 辽宁 无异常
- F 3/17 28 160 90 吉林 无异常
- G 3/14 30 160 60 内蒙 无异常
- 小张 3/16 15 160 80 新疆 无异常
- 老王 3/17 19 160 40 西藏 无异常
- 阿妹 3/14 32 180 60 甘肃 无异常
复制代码 想将其写进excel表格里,并加上框线,第一行字体加粗。- $list|out-file ccc.xls
- #out-file ccc.xls 可以瞬间将数据写进表格,问题出在后面。
- $f=gi ccc.xls
- $excel=new-object -com excel.application
- $excel.visible=$true
- $wk=$excel.workbooks.open($f)
- $st=$wk.sheets.item(1)
- $st.usedrange.borders.linestyle=1
- $st.usedrange.borders.weight=2
- $st.range("A1:G1").font.bold=$true
- [void]$st.usedrange.entirecolumn.autofit()
- $wk.save()
- $wk.close()
- #这里老是要跳出提示框
- #“是否保存对ccc.xls的更改?”
- $excel.quit()
- $st=$wk=$excel=$r=$c=$null
- [gc]::collect()
复制代码
不管点是、否、取消,在打开ccc.xls时候都没有加上框线和黑体...
并且在打开ccc.xls时有这个提示
网上搜索了一两天,没搞定。
if版主二楼提示版本问题,现在可以通过手动打开ccc.xls,另存为一次可解决,但我无法用代码自动化实现。
不用out-file生成xls,用workbooks.add()是完全可行的,但是速度巨慢!!不知为何。- $r=$c=1
- $excel=new-object -com excel.application
- $excel.visible=$true
- $wk=$excel.workbooks.add()
- $st=$wk.sheets.item(1)
- $list|%{
- foreach($i in $_.split()){
- $st.cells.item($r,$c)=$i
- $c++
- }
- $r++
- $c=1
- }
- $st.usedrange.borders.linestyle=1
- $st.usedrange.borders.weight=2
- $st.range("A1:G1").font.bold=$true
- [void]$st.usedrange.entirecolumn.autofit()
- $wk.saveas("C:\Users\lenovo\Desktop\tmp.xls")
- $wk.close()
- $excel.quit()
- $st=$wk=$excel=$r=$c=$null
- [gc]::collect()
复制代码 初学powershell,这两个代码不知道是哪些地方没弄对,希望得到前辈大佬的帮助,谢谢。 |