2024-09-20 2024-09-20 素材: 模板: 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 import pandas as pd from python_docx_replace import docx_replace,docx_get_keys from docx import Document from docxcompose.composer import Composer def parse_markdown_tables(file_path): with open(file_path, 'r', encoding='utf-8') as file: lines = file.readlines() current_table = [] for line in lines: current_table.append(line.strip().replace('<br>', '\n').split('|')[1:-1]) df = pd.DataFrame(current_table[1:], columns=current_table[0]) return df df=parse_markdown_tables("单元设计.md") def convert(num,df): print(num) doc = Document("template.docx") # keys = docx_get_keys(doc) # Let's suppose the Word document has the keys: ${name} and ${phone} # print(keys) #['name', 'week', 'problem', 'location', 'test', 'obj', 'book', 'date', 'seq', 'homework', 'review', 'goal'] docx_replace(doc, book=df.iloc[num].tolist()[8].strip(), week=df.iloc[num].tolist()[0].strip(), problem=df.iloc[num].tolist()[6].strip(), review=df.iloc[num].tolist()[11].strip(), name=df.iloc[num].tolist()[3].strip(), location=df.iloc[num].tolist()[7].strip(), date=df.iloc[num].tolist()[1].strip(), homework=df.iloc[num].tolist()[10].strip(), seq=df.iloc[num].tolist()[2].strip(), test=df.iloc[num].tolist()[9].strip(), obj=df.iloc[num].tolist()[4].strip(), goal=df.iloc[num].tolist()[5].strip()) return doc master = Document("master.docx")# 任意word文档,里面可以包含封面 composer = Composer(master) for i in range(len(df.axes[0])): unit_doc=convert(i,df) composer.append(unit_doc) composer.save("combined.docx") 效果,16张表: 项目地址:https://github.com/fjh1997/Unit 前一篇 Fine3399或rk3399\sw799刷armbian创建热点 后一篇 如何挂载容器内的非空目录到宿主机,避免覆盖
说些什么吧!