案例六:在word中打印钻孔一览表
案例概述
本案例从 GDIM 读取钻孔一览表数据,转换为报告数据后按 Word 模板输出 .docx 文件。
你将学到
将 GDIM 表数据接入 PipeLine,串联读表、写 DocData、打印报告三个模块,完成自动出报告。
用
GdimTableReader的table_fields指定要读的表。用
DocDataWriter将表数据转为DocData,并用precision控制数值小数位。用
DocPrinter的template、output_name、save_to_gdim完成模板渲染与本地(或平台)保存。用
add_attribute与save_pipeline把模板路径等参数暴露给前端并保存.pipe流程文件。
实现思路
创建
PipeLine,设置workspace,并用log_in、proj_id调用update_gdim_state。创建
GdimTableReader,设置table_fields``(如 ``["钻孔一览表"])。创建
DocDataWriter,按需设置precision。创建
DocPrinter,设置template、output_name与save_to_gdim。将
OutputTables、InputData、OutputDocData、InputDocData连成链路并add_links。按需
add_attribute暴露模板路径,save_pipeline保存流程。运行
pipeline.run(),从PrintDoc的OutputFile取得生成文件路径或文件对象。
关键代码
本例中最为关键的读表、转换与打印相关代码如下。
read_table = GdimTableReader(mname="ReadTable")
read_table.table_fields = ["钻孔一览表"] # 同时支持 name 和 title
doc_data = DocDataWriter(mname="DocData")
doc_data.precision = 2
print_doc = DocPrinter(mname="PrintDoc")
print_doc.template = f"{pipeline.workspace}/钻孔一览表模板.docx"
print_doc.output_name = "钻孔一览表.docx"
print_doc.save_to_gdim = False
links = (
read_table.OutputTables >> doc_data.InputData
| doc_data.OutputDocData >> print_doc.InputDocData
)
pipeline.add_links(links)
pipeline.run()
print(print_doc.OutputFile.data)
更进一步
完整代码请查看以下链接: