格式如上。输出后在做些适当调整就可以。
序号 试题 选项 答案
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')
在第一代基础上发现选项是竖向排列太浪费纸张,又修改成下面代码,通过表格方式对齐排列。
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')