Python:将每个excel行打印为自己的ms word页面

时间:2017-01-29 20:24:14

标签: python pandas openpyxl xlrd python-docx

我有一个包含数千行的excel文档,每行代表一个人的记录。如何使用Python提取每一行并将该信息写入MS Word页面?

我的目标是在自己的页面上创建一个包含每个记录的伪叙述的文档。

1 个答案:

答案 0 :(得分:0)

您可以将Excel文件的内容提取为Pandas数据框,然后将数据框导出为Word文档作为表格。这是实现目标的通用语法

import pandas as pd
xls_file = pd.ExcelFile('../data/example.xls')
df = xls_file.parse('Sheet1')

#Needs PyWin32
wordApp = win32.gencache.EnsureDispatch('Word.Application')
wordApp.Visible = False
doc = wordApp.Documents.Open(os.getcwd()+'\\template.docx')
rng = doc.Bookmarks("PUTTABLEHERE").Range

# creating Table 
# add one more row in table at word because you want to add column names as header
Table=rng.Tables.Add(rng,NumRows=df.shape[0]+1,NumColumns=df.shape[1])

for col in range(df.shape[1]):        
# Writing column names 
    Table.Cell(1,col+1).Range.Text=str(df.columns[col]) 
    for row in range(df.shape[0]):
    # writing each value of data frame 
        Table.Cell(row+1+1,col+1).Range.Text=str(df.iloc[row,col])

希望这有帮助!