如何使用 python 将 CSV table 写入 docx
How to write a CSV table to docx using python
我有一个 CSV
文件,如下所示:
user,password,company
Administrator, 123456, test_company
test_user1, abcdf, test_company1
test_user2, 789, test_company2
这应该是 table,其中 user
、password
和 company
为 headers。
如何使用 python 在 docx
文件中将此结构写为 table?
一定有更好的解决办法,不过也好。您的计算机上需要 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'])
就是这样。
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")
输出:
我有一个 CSV
文件,如下所示:
user,password,company
Administrator, 123456, test_company
test_user1, abcdf, test_company1
test_user2, 789, test_company2
这应该是 table,其中 user
、password
和 company
为 headers。
如何使用 python 在 docx
文件中将此结构写为 table?
一定有更好的解决办法,不过也好。您的计算机上需要 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'])
就是这样。
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")
输出: