Python如何实现将Word表格嵌入到Excel中(excel,python,Word,开发技术)

时间:2024-05-09 17:27:06 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Python如何实现将Word表格嵌入到Excel中

其实就是把Word中的表格转到Excel中,顺便做一个调整。这个需求在实际工作中,很多人还是经常碰到的!

如果单单是两个表格,那只要简单的复制黏贴即可,但如果上百了呢?那就得考虑自动化了。好在今天碰到的需求中的原文件格式是比较有规律的,那直接来尝试一下。

#首先要pipinstallpython-docx#如果原文件是doc格式,那就先转成docxfromdocximportDocumentimportpandasaspdpath="./word表格转excel.docx"docx=Document(path)table_s=docx.tables#返回一个Table对象的列表len(table_s)-->2#返回值是2,因为原文件中只有两个表格list_=[]#初始化一个空列表,用来装后面的dict_fortableintable_s:#循环所有的表格列表dict_={}dict_['名称']=table.cell(0,1).text#表格的索引是从(0行,0列)开始dict_['身份']=table.cell(0,3).textdict_['简介']=table.cell(1,1).textforiinrange(3,len(table.rows)):#后续的内容格式不固定,所以循环获取dict_[table.cell(i,0).text]=table.cell(i,1).textlist_.append(dict_)

当完成上述操作后,list_就会是一个字典列表。

Python如何实现将Word表格嵌入到Excel中

接下来,将列表转为DataFrame进行操作即可。

df=pd.DataFrame(list_)#先将前三列作为索引,然后逆透视其他列,其实这就是个一维表转二维表的过程df=df.set_index(['名称','身份','简介']).stack(level=0).to_frame()#重新设置一下行列索引的名字df.index.names=['名称','身份','简介','物质']df.columns=['现状']

此时的df就跟需求结果相差不大了。

Python如何实现将Word表格嵌入到Excel中

最后将DataFrame导出,稍作美化即可完成需求。

#导出的时候一定要设置index=True不然只会保留一列Seriesdf.to_excel("data3.xlsx",index=True,merge_cells=True)

完整代码

#首先要pipinstallpython-docx#如果原文件是doc格式,那就先转成docxfromdocximportDocumentimportpandasaspdpath="./word表格转excel.docx"docx=Document(path)table_s=docx.tables#返回一个Table对象的列表list_=[]#初始化一个空列表,用来装后面的dict_fortableintable_s:#循环所有的表格列表dict_={}dict_['名称']=table.cell(0,1).text#表格的索引是从(0行,0列)开始的dict_['身份']=table.cell(0,3).textdict_['简介']=table.cell(1,1).textforiinrange(3,len(table.rows)):#循环获得后面的内容dict_[table.cell(i,0).text]=table.cell(i,1).textlist_.append(dict_)df=pd.DataFrame(list_)#先将前三列作为索引,然后逆透视其他列,就是个一维表转二维表的过程df=df.set_index(['名称','身份','简介']).stack(level=0).to_frame()#重新设置一下行列索引的名字df.index.names=['名称','身份','简介','物质']df.columns=['现状']#导出的时候一定要设置index=True不然只会保留一列Seriesdf.to_excel("data3.xlsx",index=True,merge_cells=True)
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python如何实现将Word表格嵌入到Excel中的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:node.js有什么框架下一篇:

17 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18