B07.python读写word表格 - 有意思的小东西
程序员文章站
2024-03-17 20:34:10
...
【作者环境:win10,python3,word2019】
一、读取word表格
参考:https://blog.csdn.net/zhengyikuangge/article/details/80451424
先安装docx库
:pip install python-docx
1.1 数据
新建一个word文档,命名test.docx
,在里面建一个表格,如下:
1.2 代码
from docx import Document #导入库
def readDoc(path="test.docx"):
#path 文件路径
print("%s 表格内容为:"%path)
document = Document(path) #读入文件
tables = document.tables #获取文件中的表格集
table = tables[0]#获取文件中的第一个表格
for i in range(0,len(table.rows)):#从表格第一行开始循环读取表格数据
result = table.cell(i,0).text + "\t" +table.cell(i,1).text+ "\t" +table.cell(i,2).text + "\t" + table.cell(i,3).text+ "\t" + table.cell(i,4).text
#cell(i,0)表示第(i+1)行第1列数据,以此类推
print(result)
1.3 效果
test.docx 表格内容为:
词语1 词语2 人工判定值 词林改进版 知网相似度
轿车 汽车 0.98 1.0 1.0
宝石 宝物 0.96 0.8413 0.8413
旅游 游历 0.96 1.0 1.0
之后,你可以直接复制,或者用python对数据做进一步处理。
二、写入word表格
参考资料:
https://blog.csdn.net/qq_37534835/article/details/89182809
https://www.cnblogs.com/zhangfeiyue/p/9101937.html
2.1 代码
def saveToDoc(head, contents, path="out.docx"):
document = Document()
# 新建表头
table = document.add_table(rows=1, cols=len(head), style="Table Grid")
hdr_cells = table.rows[0].cells
for i in range(len(head)):
hdr_cells[i].text = head[i]
# 写入内容
for i in range(len(contents)):
row_cells = table.add_row().cells
for j in range(len(contents[0])):
row_cells[j].text = contents[i][j]
document.save(path)
print("已经写入%s文件中!"%path)
2.2 效果
[可能汉字格式稍微优点问题,但复制粘贴时选择’只保留文本’即可。]
三、推荐B系列
推荐其他B系列小玩意儿,比如:B01.有意思的小东西 - pdf转word【python实用工具】
另外,你想在使用python对excel进行读写,可看 pandas读写csv文件,及注意事项,非常简单方便。
完整代码
# coding:utf-8
from docx import Document #导入库
from docx.shared import Inches
def readDoc(path="test.docx"):
#path 文件路径
print("%s 表格内容为:"%path)
document = Document(path) #读入文件
tables = document.tables #获取文件中的表格集
table = tables[0]#获取文件中的第一个表格
for i in range(0,len(table.rows)):#从表格第一行开始循环读取表格数据
result = table.cell(i,0).text + "\t" +table.cell(i,1).text+ "\t" +table.cell(i,2).text + "\t" + table.cell(i,3).text+ "\t" + table.cell(i,4).text
#cell(i,0)表示第(i+1)行第1列数据,以此类推
print(result)
def saveToDoc(head, contents, path="out.docx"):
document = Document()
# 新建表头
table = document.add_table(rows=1, cols=len(head), style="Table Grid")
hdr_cells = table.rows[0].cells
for i in range(len(head)):
hdr_cells[i].text = head[i]
# 写入内容
for i in range(len(contents)):
row_cells = table.add_row().cells
for j in range(len(contents[0])):
row_cells[j].text = contents[i][j]
document.save(path)
print("已经写入%s文件中!"%path)
if __name__ == "__main__":
# readDoc(path="test.docx")
head = ['词语1', '词语2', '人工判定值', '词林改进版', '知网相似度']
contents = [['轿车', '汽车', '0.98', '1.0', '1.0'],
['宝石', '宝物', '0.96', '0.8413', '0.8413'],
['旅游', '游历', '0.96', '1.0', '1.0']]
saveToDoc(head, contents, path="out.docx")
(点个赞呗~)
下一篇: 理解JWT的使用场景和优劣