|----|----|----|----|
| 序号 | 试题 | 选项 | 答案 |
格式如上。输出后在做些适当调整就可以。
python
import pandas as pd
from docx import Document
from docx.shared import Inches
# 读取Excel文件
df = pd.read_excel(r"你的excel.xlsx")
# 创建一个新的Word文档
doc = Document()
# 添加标题
doc.add_heading('试卷', 0)
# 遍历Excel表格的每一行
for index, row in df.iterrows():
# 添加序号
doc.add_paragraph(f"序号: {row['序号']}")
# 添加试题
doc.add_paragraph(f"试题: {row['试题']}")
# 添加选项(如果有的话)
if '选项' in row and row['选项'] != '':
doc.add_paragraph(f"选项: {row['选项']}")
# 添加答案
doc.add_paragraph(f"答案: {row['答案']}")
# 添加分页符(如果需要)
# doc.add_page_break()
# 或者添加空行以区分不同的题目
doc.add_paragraph()
# 保存Word文档
doc.save('试卷.docx')
在第一代基础上发现选项是竖向排列太浪费纸张,又修改成下面代码,通过表格方式对齐排列。
python
import pandas as pd
from docx import Document
from docx.shared import Inches
# 读取Excel文件
df = pd.read_excel(r"你的.xlsx")
# 创建一个新的Word文档
doc = Document()
# 添加标题
doc.add_heading('试卷', 0)
# 遍历Excel表格的每一行
for index, row in df.iterrows():
# 添加序号
doc.add_paragraph(f"{row['序号']}、{row['试题']}")
# 添加试题
#doc.add_paragraph(f"")
# 添加选项
# 检查'选项'列是否为字符串,并且不是空字符串
if isinstance(row['选项'], str) and row['选项'].strip() != '':
# 将选项字符串按换行符分割成选项列表
options = row['选项'].strip().split('\n')
# 创建一个表格来显示选项
table = doc.add_table(rows=1, cols=len(options))
# 遍历选项列表,并添加到表格中
for i, option in enumerate(options):
cell = table.cell(0, i)
cell.text = option # 不需要额外的空格,可以在Word中调整单元格边距或宽度
cell.paragraphs[0].alignment = 2 # 设置对齐方式为居中
else:
# 如果'选项'不是字符串或者为空字符串,可以添加一条消息说明没有选项
doc.add_paragraph("该试题没有选项。")
# 添加答案
doc.add_paragraph(f"答案: {row['答案']}")
# 添加分页符(如果需要)
# doc.add_page_break()
# 或者添加空行以区分不同的题目
#doc.add_paragraph()
# 保存Word文档
doc.save('试卷.docx')