欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)將Word表格嵌入到Excel中

 更新時(shí)間:2021年12月10日 11:20:49   作者:酸菜魚編程  
把Word中的表格轉(zhuǎn)到Excel中,順便做一個(gè)調(diào)整。這個(gè)需求在實(shí)際工作中,很多人還是經(jīng)常碰到的!本文就將介紹如何利用Python實(shí)現(xiàn)這一功能,需要的朋友可以了解一下

今日需求

其實(shí)就是把Word中的表格轉(zhuǎn)到Excel中,順便做一個(gè)調(diào)整。這個(gè)需求在實(shí)際工作中,很多人還是經(jīng)常碰到的!

如果單單是兩個(gè)表格,那只要簡(jiǎn)單的復(fù)制黏貼即可,但如果上百了呢?那就得考慮自動(dòng)化了。好在今天碰到的需求中的原文件格式是比較有規(guī)律的,那直接來嘗試一下。

# 首先要pip install python-docx
# 如果原文件是doc格式,那就先轉(zhuǎn)成docx
from docx import Document
import pandas as pd
 
path = "./word表格轉(zhuǎn)excel.docx"
docx = Document(path)
table_s = docx.tables  # 返回一個(gè)Table對(duì)象的列表
 
len(table_s) --> 2 # 返回值是2,因?yàn)樵募兄挥袃蓚€(gè)表格
 
list_ = []  # 初始化一個(gè)空列表,用來裝后面的dict_
 
for table in table_s:  # 循環(huán)所有的表格列表
    dict_ = {}
    dict_['名稱'] = table.cell(0, 1).text  # 表格的索引是從(0行,0列)開始
    dict_['身份'] = table.cell(0, 3).text
    dict_['簡(jiǎn)介'] = table.cell(1, 1).text
    for i in range(3, len(table.rows)):  # 后續(xù)的內(nèi)容格式不固定,所以循環(huán)獲取
        dict_[table.cell(i, 0).text] = table.cell(i, 1).text
    list_.append(dict_)

當(dāng)完成上述操作后,list_就會(huì)是一個(gè)字典列表。

接下來,將列表轉(zhuǎn)為DataFrame進(jìn)行操作即可。

df = pd.DataFrame(list_)
 
# 先將前三列作為索引,然后逆透視其他列,其實(shí)這就是個(gè)一維表轉(zhuǎn)二維表的過程
df = df.set_index(['名稱', '身份', '簡(jiǎn)介']).stack(level=0).to_frame()
 
# 重新設(shè)置一下行列索引的名字
df.index.names = ['名稱', '身份', '簡(jiǎn)介', '物質(zhì)']
df.columns = ['現(xiàn)狀']

此時(shí)的df就跟需求結(jié)果相差不大了。

最后將DataFrame導(dǎo)出,稍作美化即可完成需求。

# 導(dǎo)出的時(shí)候一定要設(shè)置index=True不然只會(huì)保留一列Series
df.to_excel("data3.xlsx", index=True, merge_cells=True)

完整代碼?

# 首先要pip install python-docx
# 如果原文件是doc格式,那就先轉(zhuǎn)成docx
from docx import Document
import pandas as pd
 
path = "./word表格轉(zhuǎn)excel.docx"
docx = Document(path)
table_s = docx.tables  # 返回一個(gè)Table對(duì)象的列表
 
list_ = []  # 初始化一個(gè)空列表,用來裝后面的dict_
 
for table in table_s:  # 循環(huán)所有的表格列表
    dict_ = {}
    dict_['名稱'] = table.cell(0, 1).text  # 表格的索引是從(0行,0列)開始的
    dict_['身份'] = table.cell(0, 3).text
    dict_['簡(jiǎn)介'] = table.cell(1, 1).text
    for i in range(3, len(table.rows)):  # 循環(huán)獲得后面的內(nèi)容
        dict_[table.cell(i, 0).text] = table.cell(i, 1).text
    list_.append(dict_)
 
df = pd.DataFrame(list_)
 
# 先將前三列作為索引,然后逆透視其他列,就是個(gè)一維表轉(zhuǎn)二維表的過程
df = df.set_index(['名稱', '身份', '簡(jiǎn)介']).stack(level=0).to_frame()
 
# 重新設(shè)置一下行列索引的名字
df.index.names = ['名稱', '身份', '簡(jiǎn)介', '物質(zhì)']
df.columns = ['現(xiàn)狀']
 
# 導(dǎo)出的時(shí)候一定要設(shè)置index=True不然只會(huì)保留一列Series
df.to_excel("data3.xlsx", index=True, merge_cells=True)

到此這篇關(guān)于Python實(shí)現(xiàn)將Word表格嵌入到Excel中的文章就介紹到這了,更多相關(guān)Python Word表格嵌入Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論