下面是一份完整的Python将Excel转Word的示例教程。
1. 安装依赖库
需要使用到 openpyxl
和 python-docx
两个Python依赖库,需要先进行安装:
pip install openpyxl python-docx
2. 编写代码
下面是一个简单的示例,将Excel中的数据转成表格插入到Word文件中:
import openpyxl
import docx
# 打开Excel文件
wb = openpyxl.load_workbook('data.xlsx')
sheet = wb['Sheet1']
# 创建Word文档
doc = docx.Document()
# 插入表格
table = doc.add_table(rows=len(sheet.rows), cols=len(sheet.columns))
for i, row in enumerate(sheet.rows):
for j, cell in enumerate(row):
table.cell(i, j).text = str(cell.value)
# 保存Word文件
doc.save('output.docx')
在上面的代码中,我们首先使用 openpyxl
打开了一个名为 data.xlsx
的Excel文件,并获取了其中名为 Sheet1
的工作表。
接下来,我们使用 python-docx
创建了一个新的Word文件并插入了一个表格。其中,我们首先使用 doc.add_table()
方法创建了一个给定列数和行数的表格,然后使用嵌套的循环遍历Excel中的数据并将其插入到表格中。
最后,我们使用 doc.save()
方法将生成的Word文件保存为名为 output.docx
的文件。
3. 示例说明
示例一
假设有一个包含公司员工薪资信息的Excel文件 salary.xlsx
,其中包含员工姓名、部门、薪资等信息。我们需要将这些信息转换成一份名为 salary.docx
的Word文件,并将每个员工信息作为一段落插入到Word文件中。
下面是代码示例:
import openpyxl
import docx
# 打开Excel文件
wb = openpyxl.load_workbook('salary.xlsx')
sheet = wb['Sheet1']
# 创建Word文档
doc = docx.Document()
# 将每个员工信息插入到Word文件中
for row in sheet.rows:
name = row[0].value
department = row[1].value
salary = row[2].value
paragraph = f'姓名:{name}\n部门:{department}\n薪资:{salary}'
doc.add_paragraph(paragraph)
# 保存Word文件
doc.save('salary.docx')
在上面的示例中,我们首先使用 openpyxl
打开了一个名为 salary.xlsx
的Excel文件,并获取了其中名为 Sheet1
的工作表。
接下来,我们使用 python-docx
创建了一个新的Word文件,并使用循环遍历Excel文件中的每一行数据。对于每个员工,我们根据其姓名、部门、薪资等信息组成了一个段落,并将其插入到了Word文件中。
最后,我们使用 doc.save()
方法将生成的Word文件保存为名为 salary.docx
的文件。
示例二
假设我们有一个名为 scores.xlsx
的Excel文件,其中包含每个学生的姓名和成绩信息。我们需要将学生的成绩转换成一份名为 report.docx
的Word文件,并将其按照从高到低的顺序排列。
下面是代码示例:
import openpyxl
import docx
# 打开Excel文件
wb = openpyxl.load_workbook('scores.xlsx')
sheet = wb['Sheet1']
# 将学生信息转换为元组列表
scores = []
for row in sheet.rows:
name = row[0].value
score = row[1].value
scores.append((name, score))
# 按照成绩从高到低排序学生信息
scores = sorted(scores, key=lambda x: x[1], reverse=True)
# 创建Word文档
doc = docx.Document()
# 将学生信息插入到Word文件中
for name, score in scores:
paragraph = f'{name}:{score}'
doc.add_paragraph(paragraph)
# 保存Word文件
doc.save('report.docx')
在上面的示例中,我们首先使用 openpyxl
打开了一个名为 scores.xlsx
的Excel文件,并获取了其中名为 Sheet1
的工作表。
接下来,我们将每个学生姓名和成绩信息转换成了一个元组,并将所有元组放入到了一个列表 scores
中。然后,我们使用了一个 lambda 表达式对学生成绩进行从高到低排序。
接下来,我们使用 python-docx
创建一个新的Word文件,并使用循环遍历从高到低排序后的学生成绩信息。对于每个学生,我们根据其姓名和成绩组成了一个段落,并将其插入到了Word文件中。
最后,我们使用 doc.save()
方法将生成的Word文件保存为名为 report.docx
的文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 将Excel转Word的示例 - Python技术站