我正在尝试用Python编写一个程序,该程序从Excel文件中获取数据并使用它来创建Word文件。 例如,请考虑以下名为Problems.xlsx
的Excel文件我希望为此Excel文件中的所有13个问题创建一个名为:( Book Id) - (Chapter Id) - (Problem Id)的文件。每个文件应如下所示:
nt1.docx。它应该是52289-9.2-59PS.docx。但请注意,第一行包含底部边框,左侧的文件名和公司名称(不变)以及今天的日期。
我无法在文档中添加边框并更改字体大小和名称。这是我到目前为止编写的代码。
from openpyxl import load_workbook
from docx import Document
from time import strftime
from docx.shared import Pt
#Accessing data from excel file.
ws=load_workbook(filename="Problems.xlsx")
sheet=ws.get_sheet_by_name('Sheet2')
for i in range(2,15):
fileName=""
for j in range(1,4):
if j!=3:
fileName=fileName+str(sheet.cell(row=i,column=j).value)+"-"
else:
fileName=fileName+str(sheet.cell(row=i,column=j).value)
#Now we have the file names, so let's make a file
document=Document()
run=document.add_paragraph().add_run()
font=run.font
font.name="Times New Roman"
font.size=12
date=strftime("%d/%m/%Y")
document.add_paragraph(fileName+" AID: 1112|"+date)
document.add_paragraph("--------------------------------------------------------------------------------------------------------------------")
#Saving the document with the fileName
document.save(fileName+".docx")
上面的代码创建了具有正确名称的文件,但有两个关键问题:
答案 0 :(得分:0)
经过反复试验,以下代码可以解决我在问题中提到的问题。
from openpyxl import load_workbook
from docx import Document
from time import strftime
from docx.shared import Pt
#Accessing data from excel file.
ws=load_workbook(filename="Problems.xlsx")
sheet=ws.get_sheet_by_name('Sheet2')
for i in range(2,15):
fileName=""
for j in range(1,4):
if j!=3:
fileName=fileName+str(sheet.cell(row=i,column=j).value)+"-"
else:
fileName=fileName+str(sheet.cell(row=i,column=j).value)
#Now we have the file names, so let's make a file
document=Document()
style=document.styles['Normal']
font=style.font
font.name="Times New Roman"
font.size=Pt(12)
date=strftime("%d/%m/%Y")
font.underline=True
document.add_paragraph(fileName+" AID: 1112|"+date,style='Normal')
#Saving the document with the fileName
document.save(fileName+".docx")