一.在Word模板中设置“表格样式”
-
打开Word并编辑你的模板文档。
-
插入一个表格:点击“插入”标签页,然后选择“表格”下拉菜单中的适当行数和列数。
-
格式化表格:点击表格,使用Word的“表格工具”下的“设计”标签页来设置表格的样式。
-
使用表格样式:在“表格工具”->“设计”标签页中,你会看到“表格样式”选项。点击下拉箭头,选择一个预设的样式,或点击“新建表格样式”来创建自定义样式。如果你创建了自定义样式,记得给它命名,以便在
python-docx
中引用。 -
保存模板文档:完成表格设置后,保存你的模板文档。
二.在python-docx
中应用表格样式
from docx import Document
import pandas as pd
template_path = r"D:\word_test\55.docx" # 模板文档路径
doc = Document(template_path)
# 示例DataFrame
data = {
'Column1': ['Item1', 'Item2', 'Item3'],
'Column2': ['Description1', 'Description2', 'Description3'],
'Column3': [100, 200, 300]
}
df = pd.DataFrame(data)
# 在模板文档中添加表格
num_rows, num_cols = df.shape
table = doc.add_table(rows=num_rows, cols=num_cols)
# 设置表格样式
try:
table.style = '表5-三级标题下的表格' # 替换为你在Word中定义的样式名称
except ValueError:
print("指定的表格样式不存在或不受支持。")
# 写入表头
for j in range(num_cols):
table.cell(0, j).text = str(df.columns[j])
# 写入DataFrame中的数据
for i in range(num_rows):
for j in range(num_cols):
table.cell(i, j).text = str(df.iloc[i, j])
# 保存新的Word文档,这将包含模板的格式和新的表格数据
output_path = r"D:\word_test\df_test55.docx"
doc.save(output_path)
注意:python-docx
并不总是能够完美地复制Word中定义的所有样式细节,特别是当样式非常复杂或使用了Word的高级功能时。