pywin32 copy excel sheet阻点经验

     在工作中遇到一些重复的excel操作,例如,检查excel中的填报情况和生成下一次的填报新模板excel。

    每周重复这样操作的时间,总想着有没有可以自动化的办法可以搞定,毕竟程序员厌恶重复嘛!

    这段在帮助一位同事用python搭建一个web服务后,就非常饶有兴趣地决定用python胶水语言试试,以方便工作。

    因为检查和拷贝excel的重复工作,是与windows环境绑定比较紧密的,所以,就不用太关心跨平台的问题。可以利用python os.popen操作windows命令行命令,以及使用pywin32的组件模块完成这个操作。

  pywin32 访问excel的方法,在网上也有不少例子。参考一下,非常平滑地完成前面检查的动作。但是,在复制sheet页时,网上的sheet.Copy(NONE,afterSheet)的语法,并不能工作的很好,就遇到了阻点。

    后来,查阅网上资料,了解到pywin32是借助win32 COM组件进行工作的,而且控制台上打印的异常堆栈也是说明这样一点。而且也提到,pywin32操作excel的接口与VBA 操作excel的接口类似。所以,就从搜索VBA开始,最后也很有幸地在MSDN上查到这些接口说明。

   在MSDN 研究一通,发现对于excel sheet Copy动作,它的参数其实就是所要Before和After的sheet,而且参数可选。所以,网上pywin32例子中传入copy动作的第一个参数使用None有点绕了。

   因为excel copy sheet到某个sheet页之前后之后,其实就是一个获取不同sheet,然后作为第一个参数传入即可,完全可以绕过对于NONE的使用。

  有时有些问题,一直搞不一定时,退下来想想、分析分析,或就有办法了:)

  现在又加上PowerCmd这个软件来方便windows 命令行输入,工作变得会更便捷了,哈哈

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用pywin32来设置Excel的列宽。可以通过以下代码来实现: ``` import win32com.client as win32 # 创建Excel应用程序对象 excel = win32.gencache.EnsureDispatch('Excel.Application') excel.Visible = True # 打开工作簿 workbook = excel.Workbooks.Open("路径/文件名.xlsx") # 选择工作表 worksheet = workbook.Worksheets("Sheet1") # 设置列宽 worksheet.Columns("A:I").ColumnWidth = 15 # 保存并关闭工作簿 workbook.Save() workbook.Close() # 退出Excel应用程序 excel.Quit() ``` 在这个代码,我们使用`win32com.client`库创建了Excel应用程序对象并打开了指定的工作簿。然后,我们选择了要设置列宽的工作表,并使用`Columns`属性来设置列的宽度。在这个例子,我们将列宽设置为15。最后,我们保存并关闭工作簿,退出Excel应用程序。 请注意,你需要将路径/文件名.xlsx替换为你要操作的实际文件路径和文件名。此外,你可能需要安装`pywin32`库,可以使用`pip install pywin32`来安装。 引用了的内容,提供了设置列宽的具体代码以满足用户问题。123 #### 引用[.reference_title] - *1* *2* *3* [pywin32+excel(三)——python通过pywin32操作excel](https://blog.csdn.net/Castlehe/article/details/109811198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值