如何使用python将CSV表写入docx

时间:2018-02-16 14:32:27

标签: python csv docx

我有一个CSV文件,如下所示:

user,password,company
Administrator, 123456, test_company
test_user1, abcdf, test_company1
test_user2, 789, test_company2

这应该是以userpasswordcompany作为标题的表格。

如何使用python将此结构编写为docx文件中的表?

2 个答案:

答案 0 :(得分:4)

import docx 
import csv

doc = docx.Document()

with open('csv.csv', newline='') as f:
    csv_reader = csv.reader(f) 

    csv_headers = next(csv_reader)
    csv_cols = len(csv_headers)

    table = doc.add_table(rows=2, cols=csv_cols)
    hdr_cells = table.rows[0].cells

    for i in range(csv_cols):
        hdr_cells[i].text = csv_headers[i]

    for row in csv_reader:
        row_cells = table.add_row().cells
        for i in range(csv_cols):
            row_cells[i].text = row[i]

doc.add_page_break()
doc.save("data.docx")

输出:

enter image description here

答案 1 :(得分:1)

必须有更好的解决方案,但很好。您的计算机上需要pandoc

假设您的csv位于tt.csv。你可以这样做:

df = pd.read_csv('tt.csv', header=None)
df.to_latex('tt.tex', index=False, header=False)
subprocess.run(['pandoc', '-s', '-f' ,'latex', 'tt.tex', '-o', 'tt.docx'])

就是这样。