Word 表格转存到Excel
工作中,经常需要将Word文档中的表格粘贴到Excel文件中,以便汇总及分析。一个一个复制粘贴,非常不方便,还是Python自动化操作,省心省力。要求如下图所示,即将word中的所有表格,转存到excel文件的工作表里。
import
path
wb
以上,先导入相关模块。os
用于获取待处理word文件的路径;docx
用于读取word
文件;openpyxl
用于操作excel
文件。将所有word文件的路径存入列表files
中。然后逐个通过Document
打开,并使用Workbook()
创建Excel工作簿,以接收来自于word文件中的数据。因为创建工作簿后,Excel会自动新建一个名为"Sheet"的空白表格,但我们想用自己命名的表格,所以使用remove()
将自动新建的表删掉了。
然后遍历word
文件中的所有表格,并读取其中的数据。由于我们想让Excel
工作簿中的表的序号与Word
中的一致,所以使用enmuerate
给Word
中的表格进行编号,start=1
表示从1开始,不然会默认从0开始。
随后使用wb.create_sheet
新建一个工作表,其表名就用字符串"Sheet"加上上面的编号。其中f"{}"
是格式化字符串方法,从Python 3.6开始加入标准库,是一种更灵活好用的方法。如下有四种方式处理字符串,结果完全一样,不过第一种最好用,墙裂推荐。
然后遍历word中表格的所有行和列,将每行的数据存入列表row_data
,然后通过append
方法马上增加到Excel表中最后一个数据下面。append
方法可以将一个列表中的所有元素写入到excel表的一行,一个元素占一个单元格(如下图),够智能的吧?
处理完一个word文件,就保存一下数据。为了使保存的excel文件名与word文件名一致,使用了file.split("\\")[1].split(".")[0])
。其中file
的内容如下。file.split("\\")[1]
就得到了'采购报告.docx','采购报告.docx'.split(".")[0]
就得到了“采购报告”。
如果您有需要处理的问题,可发邮件到我邮箱:donyo@qq.com,一起探讨解决方案。微信公众号输入“源文件”提取所有源文件及资料。
最好的赞赏就是点亮下方“在看”,多给PythonOffice积攒一点人气哈!