使用Python语言pandas库将数据带格式填入word模板
时间: 2024-04-17 22:22:57 浏览: 100
要使用Python中的`pandas`库将数据带格式填入Word模板,可以结合使用`python-docx`和`pandas`库来实现。下面是一个示例代码:
```python
from docx import Document
from docx.shared import Pt
import pandas as pd
def fill_word_template(template_file, output_file, data):
# 打开模板文件
doc = Document(template_file)
# 查找表格
tables = doc.tables
if len(tables) == 0:
raise ValueError("模板中没有表格")
# 获取表格的列数
column_count = len(tables[0].columns)
# 将数据填充到表格中
for index, row_data in data.iterrows():
# 在表格末尾添加一行
new_row = tables[0].add_row().cells
# 填充数据到新行中的每个单元格
for i in range(column_count):
cell = new_row[i]
cell.text = str(row_data[i])
# 设置单元格格式(例如字体大小)
run = cell.paragraphs[0].runs[0]
run.font.size = Pt(12)
# 保存填充后的文件
doc.save(output_file)
# 示例数据
data = pd.DataFrame({
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 35],
'邮箱': ['zhangsan@example.com', 'lisi@example.com', 'wangwu@example.com']
})
# 调用函数填充模板
fill_word_template('template.docx', 'output.docx', data)
```
在上面的示例中,我们假设模板中只有一个表格。首先,我们打开模板文件,并获取表格的列数。然后,使用`iterrows()`函数遍历数据中的每一行,将每个单元格的值填充到新行中的对应单元格中。同时,可以设置单元格的格式,例如字体大小。最后,保存填充后的文件。
请注意,示例数据使用了`pandas`库的`DataFrame`来表示表格数据,可以根据实际情况修改示例数据以适应自己的数据结构。
阅读全文