modules.writers 模块帮助
本章节包含 modules.writers 包中常用「数据写入 / 导出」模块的使用说明和示例,例如:
写入 GDIM 表格、文件服务器或本地文件的模块
导出 Word / Excel 报告的模块
DocDataWriter
模块简介与适用场景
DocDataWriter用于将多种输入数据(SingleResult/TableData/TableCollection/ 文件路径)转换为统一的DocData``(端口: ``OutputDocData),供 :class:`gdisdk.modules.writers.DocPrinter`(Word)或 :class:`gdisdk.modules.writers.ExcelPrinter`(Excel)基于模板渲染输出。典型适用场景:
将计算模块输出的
SingleResult转为报告变量(如数值指标、结论文本等);将
TableData/TableCollection转为可用于模板渲染的 “表格数据 + 表头结构”;将图片文件(
.png/.jpg/...)或子文档(.docx/.xlsx)路径写入DocData,在模板中插入图片或子文档;通过
export_keys_to_json导出模板变量结构(doc keys),用于配置 Word/Excel 模板;通过
export_data_to_json导出实际打印数据,用于核对报告里会写入的内容。
Hint
DocData``(``data / doc_keys_struct)结构与导出方法说明,见 DocData:报告打印的数据容器(模板 keys 与渲染数据)。
端口说明
输入端口 -
InputData:输入数据(SingleResult/TableData/TableCollection/FilePath/FilesPath)输出端口 -
OutputDocData:输出文档数据(DocData,可直接用于DocPrinter/ExcelPrinter渲染)
快速上手示例:将 GDIM 表格转换为 DocData,并导出模板变量结构
from gdisdk.modules.readers import GdimTableReader
from gdisdk.modules.writers import DocDataWriter
from gdisdk.pipeline import PipeLine
pipeline = PipeLine(app_name="GenerateDocKeys", app_title="导出模板变量结构示例")
pipeline.workspace = "test"
read_table = GdimTableReader(mname="ReadTable")
read_table.table_fields = ["钻孔一览表"]
doc_data = DocDataWriter(mname="DocData")
doc_data.precision = 2 # 所有数值保留 2 位小数
links = read_table.OutputTables >> doc_data.InputData
pipeline.add_links(links)
pipeline.run()
# 导出模板变量结构(用于模板中 {{key}} / 表格循环等配置)
doc_data.OutputDocData.data.export_keys_to_json("bore_table_doc_keys.json")
# (可选)导出打印数据(用于检查最终会写进报告的内容)
doc_data.OutputDocData.data.export_data_to_json("bore_table_doc_data.json")
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
数值格式化小数位数;支持统一 |
|
|
|
日期时间格式化(strftime);支持统一 |
|
|
|
仅对 |
|
|
|
仅 |
|
|
|
仅对 |
|
|
|
仅对 |
|
|
|
仅对 |
|
|
|
仅对 “文件列表输入” ( |
|
|
|
若设置则忽略 |
|
|
|
将指定 key 的字符串值从 LaTeX 转为 Unicode(例如 |
latex_to_unicode_keys 用法示例
# 1) 根级 key(单个 / 多个)
doc = DocDataWriter("Doc")
doc.latex_to_unicode_keys = "model_expression"
# 或
doc.latex_to_unicode_keys = ["model_expression", "formula"]
# 2) 表格列 key(dict 模式)
doc.latex_to_unicode_keys = {"table1": "column1"}
# 或
doc.latex_to_unicode_keys = {"table1": ["col1", "col2"]}
# 3) 混合模式(dict + "__root__")
doc.latex_to_unicode_keys = {"__root__": ["key1"], "table1": ["col1"]}
说明:
key 支持使用 字段名 或 **字段标题**(会按 doc keys 结构自动映射)
仅对 字符串值 生效,非字符串值保持不变
支持常见 LaTeX 语法(希腊字母、分数、根号、上下标、无穷大等)
在 pipeline 中的使用方式:组合多个 DocDataWriter 并合并
当报告需要同时写入多份数据(例如:指标结果 + 图像 + 多张表格),常见做法是 “多个 DocDataWriter + MergeDocData 合并后再打印”:
from gdisdk.modules.writers import DocDataWriter, MergeDocData
data_doc = DocDataWriter("DataDoc") # 例如:TableCollection / TableData
image_doc = DocDataWriter("ImageDoc") # 例如:图片路径(OutputImageFile)
merge_doc = MergeDocData("MergeDoc")
merge_doc.add_dynamic_ports_in("InputDataDocData")
merge_doc.add_dynamic_ports_in("InputImageDocData")
links = data_doc.OutputDocData >> merge_doc.InputDataDocData | image_doc.OutputDocData >> merge_doc.InputImageDocData
更多信息
TextWriter
模块简介与适用场景
TextWriter用于将纯文本字符串、JSON 对象或ResultModel写入本地文本文件。适合将 Markdown、提示词、LLM 输出、结构化结果模型、配置 JSON、调试文本等结果落盘,便于下载、归档或继续传给下游系统。
支持自定义输出后缀名(如
txt/md/json/csv),并可在需要时上传到 GDIM 文件服务器。
端口说明
输入端口 -
InputText:输入文本、JSON 对象或ResultModel``(会通过 ``to_plain_text转为纯文本后再写入) -InputToken:鉴权与项目定位信息(token, proj_id, host);若未提供则可从pipeline.gdim_state获取输出端口 -
OutputFile:输出文件(本地保存时为FilePath,上传 GDIM 时为GdimFile)
快速上手示例:写出 Markdown 文件
from gdisdk.modules.writers import TextWriter
writer = TextWriter(
text="# 结果摘要\n\n- 项目:示例项目\n- 结论:可行",
output_dir="workspace",
output_name="summary",
suffix="md",
)
output_file = writer.execute()
print(output_file)
快速上手示例:写出 JSON 文件
from gdisdk.modules.writers import TextWriter
writer = TextWriter(
text={"project": "Demo", "score": 95, "passed": True},
output_name="result",
suffix="json",
json_indent=2,
)
output_file = writer.execute()
print(output_file)
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
当 |
|
|
|
当 |
|
|
|
输出目录;若 pipeline 设置了 |
|
|
|
输出文件名(不含扩展名)。 |
|
|
|
输出文件后缀名(不含前导点),例如 |
|
|
|
写文件时使用的文本编码。 |
|
|
|
是否将文件同时上传到 GDIM 文件服务器;为 |
|
|
|
GDIM 用户 token;通常更推荐通过 |
|
|
|
GDIM 项目 ID;可通过 |
|
|
|
GDIM 平台地址;通常沿用 pipeline 中的 GDIM 状态即可。 |
|
|
|
当输入为 |
上传 GDIM 前检查
是否需要特别处理:当文本文件需要在 GDIM 中留存、回传或提供给后续节点下载时,是。
必须检查:
将
save_to_gdim设为True,否则结果只会保存在本地路径。
建议检查:
suffix设为明确的业务格式,如md、json、csv,方便下游识。
若遗漏,常见现象:
本地运行能生成文件,但上传 GDIM 后拿不到期望的
GdimFile输出;下游系统拿到文件后无法按预期格式解析,例如把 Markdown 当成普通
txt。
在 pipeline 中的使用方式
from gdisdk.pipeline.pipeline import PipeLine
from gdisdk.modules.converters import TableToMarkdown
from gdisdk.modules.writers import TextWriter
pipeline = PipeLine(app_name="WriteMarkdownDemo", app_title="写出Markdown文件")
pipeline.workspace = "workspace"
to_md = TableToMarkdown("ToMarkdown")
writer = TextWriter("WriteMarkdown", output_name="table_result", suffix="md")
# links = upstream.OutputTable >> to_md.InputTable | to_md.OutputMarkdown >> writer.InputText
# pipeline.add_links(links)
# pipeline.run()
更多信息
ExportGdimTables
模块简介与适用场景
ExportGdimTables用于将 GDIM 表格数据导出为.gtb或.xlsx文件(端口:OutputFile)。该模块适合在 “读出项目表格后,打包给外部系统 / 人工下载 / 二次导入” 的场景中使用。
两种导出格式的区别:
gtb:导出为 GDIM 兼容的压缩包,内部包含各表 CSV 文件和metadata文件;xlsx:导出为 Excel 文件,第一个工作表为metadata,后续每个工作表对应一张表。
导出文件会同时保留表/字段的
title与name信息:每张表的 CSV 文件名 / Excel 工作表名优先使用表标题,元数据中同时记录内部名、标题和工作表名;
每张表的第 1 行写字段标题,第 2 行写字段内部名,数据从第 3 行开始。
输出支持保存到本地或上传 GDIM 文件服务器(
save_to_gdim=True)。
端口说明
输入端口 -
InputTables:待导出的表格数据(TableCollection或TableData) -InputTemplateId:项目资料中的模板信息(ResultModel,需包含dataTemplateId) -InputToken:鉴权与项目定位信息(token, proj_id, host);若未提供则从pipeline.gdim_state.token / pipeline.gdim_state.proj_id / pipeline.gdim_state.host获取输出端口 -
OutputFile:导出结果;本地保存时为FilePath,上传 GDIM 时为GdimFile
快速上手示例:导出 GDIM 表格为 Excel
from gdisdk.connectors import log_in
from gdisdk.modules.readers import GdimAppProjectInfoReader, GdimTableReader
from gdisdk.modules.writers import ExportGdimTables
from gdisdk.pipeline import PipeLine
pipeline = PipeLine(app_name="ExportGdimTablesDemo", app_title="导出GDIM表格示例")
pipeline.workspace = "test"
pipeline.update_gdim_state(
token=log_in(user_name="你的GDIM用户名", password="你的GDIM密码"),
proj_id="你的GDIM项目ID",
)
read_tables = GdimTableReader("ReadTables")
read_tables.table_fields = ["钻孔一览表", "地层信息表"]
read_project_info = GdimAppProjectInfoReader("ReadProjectInfo")
export_tables = ExportGdimTables("ExportTables")
export_tables.format = "xlsx"
export_tables.output_name = "项目表格导出"
links = (
read_tables.OutputTables >> export_tables.InputTables
| read_project_info.OutputProjectInfo >> export_tables.InputTemplateId
)
pipeline.add_links(links)
pipeline.run()
print(export_tables.OutputFile.data)
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
导出格式。 |
|
|
|
输出目录;若 pipeline 设置了 |
|
|
|
导出文件名(不含扩展名)。 |
|
|
|
是否将导出结果上传到 GDIM 文件服务器;为 |
上传 GDIM 前检查
是否需要特别处理:当导出的表格文件需要在 GDIM 中回传、下载或被后续流程消费时,是。
必须检查:
将
save_to_gdim设为True,否则结果只会保存在本地路径;
建议检查:
output_name设为清晰稳定的文件名,便于在 GDIM 文件列表中识别。
若遗漏,常见现象:
本地运行能生成文件,但上传 GDIM 后拿不到期望的
GdimFile输出;
更多信息
GdimTableWriter
模块简介与适用场景
GdimTableWriter用于将ResultModel、TableData、TableCollection、GeneralTable或NumberTable写入 GDIM 项目的业务表。典型适用场景:
将本地整理后的表格数据回写到指定 GDIM 表;
将
ResultModel形式的结果数据写入项目资料表,供后续流程或前端界面继续使用;配合
GdimTableReader(keep_gdim_id=True)和MergeGdimTables,对 GDIM 中已有记录执行“更新而不是新增”。
Hint
如果数据里包含 gdim_id 列,模块会在写入时自动将其转换回 GDIM 识别的 id 字段:
从 GDIM 读取已有数据时,将
GdimTableReader.keep_gdim_id设为True;若是“新数据 + 旧数据”混合回写,建议先通过
MergeGdimTables为已有记录补齐gdim_id;带
gdim_id的记录会被更新,不带gdim_id的记录会作为新记录插入。
端口说明
输入端口 -
InputData:待写入的数据(ResultModel/TableData/TableCollection/GeneralTable/NumberTable) -InputToken:鉴权与项目定位信息(token, proj_id, host)。若 pipeline 已通过update_gdim_state(token=..., proj_id=...)配置gdim_state,可从pipeline自动取得 token,该端口可不连接;否则需提供 token。若构造函数里已经设置proj_id,则该值优先级高于InputToken或pipeline.gdim_state中的项目 ID。输出端口 - 无专门输出端口;
execute在全部写入成功(write_table_data返回空错误字典)时返回True。缺少 token、InputData为空、或无法取得项目 ID(构造参数proj_id、InputToken、pipelinegdim_state均无有效proj_id)时返回None。raise_error=True时,校验失败或接口错误通常直接抛错;raise_error=False时失败信息以 warning 形式汇总,若仍有部分数据成功写入则可能返回True,全部失败则可能返回None。
快速上手示例:将表格数据写入 GDIM 指定表
from gdisdk.connectors import log_in
from gdisdk.dataclass import TableData
from gdisdk.modules.writers import GdimTableWriter
from gdisdk.pipeline import PipeLine
pipeline = PipeLine(app_name="GdimTableWriterDemo", app_title="写入GDIM表示例")
pipeline.update_gdim_state(
token=log_in(user_name="你的GDIM用户名", password="你的GDIM密码"),
proj_id="你的GDIM项目ID",
)
table = TableData(
data={
"钻孔编号": ["ZK-001", "ZK-002"],
"孔口高程": [12.35, 14.10],
},
name="borehole_summary",
title="钻孔一览表",
)
writer = GdimTableWriter("WriteTable")
writer.InputData = table
writer.table_names = "钻孔一览表"
pipeline.run()
快速上手示例:更新 GDIM 中已有记录
from gdisdk.connectors import log_in
from gdisdk.modules.readers import GdimTableReader
from gdisdk.modules.writers import GdimTableWriter
from gdisdk.pipeline import PipeLine
pipeline = PipeLine(app_name="UpdateGdimTableDemo", app_title="更新GDIM记录示例")
pipeline.update_gdim_state(
token=log_in(user_name="你的GDIM用户名", password="你的GDIM密码"),
proj_id="你的GDIM项目ID",
)
read_table = GdimTableReader("ReadTable")
read_table.table_fields = ["钻孔一览表"]
read_table.keep_gdim_id = True
writer = GdimTableWriter("WriteBack")
writer.table_names = "钻孔一览表"
# 实际使用时,通常会在两者之间插入清洗、计算或合并模块
links = read_table.OutputTableData >> writer.InputData
pipeline.add_links(links)
pipeline.run()
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
目标表名或表标题(会先按表名匹配,再按表标题)。为 |
|
|
|
源字段到 GDIM 字段的映射。键和值都可使用字段名或字段标题;也支持按表分别配置字段映射。为 |
|
|
|
写入任一表失败时是否直接抛错。设为 |
|
|
|
时间类字段校验策略。 |
|
|
|
写入前的数据校验级别。 |
|
|
|
GDIM 用户 token。一般更推荐通过 |
|
|
|
GDIM 项目 ID。若构造函数中显式设置,该值优先级高于 |
|
|
|
GDIM 平台地址;通常沿用 pipeline 中的 GDIM 状态即可。 |
上传 GDIM 前检查
是否需要特别处理:当 pipeline 要在 GDIM 平台中运行,并直接把结果写回项目表时,是。
必须检查:
若目标是更新已有记录而非新增,必须确保写入数据里保留了
gdim_id;
建议检查:
对日期时间类字段较多的数据,优先保持
strict_datetime_validation=True和validation_level="full",先保证数据质量再考虑提速。
若遗漏,常见现象:
看起来模块运行成功,但数据没有写入预期的 GDIM 表;
原本希望覆盖旧记录,结果在表中新增了重复记录;
更多信息
MergeDocData
模块简介与适用场景
MergeDocData用于将多个DocData合并为一个DocData(端口:OutputDocData)。该模块使用 动态输入端口:你需要通过
add_dynamic_ports_in("InputXXX")预先声明要合并的输入端口,然后在 pipeline 中将多个上游DocDataWriter.OutputDocData分别连到这些端口。合并时若出现重复 key,会自动在后续重复项上追加
_1,_2等后缀,并给出 warning,避免覆盖已有数据。
Hint
合并后的 DocData 同样可以通过 export_keys_to_json / export_data_to_json 导出查看(见 DocData:报告打印的数据容器(模板 keys 与渲染数据)),便于排查 “合并后 key 是否冲突 / 数据是否符合预期”。
端口说明
输入端口 - 动态输入端口:通过
add_dynamic_ports_in("InputXXX")添加;每个动态端口的数据类型均为DocData``(通常接 ``DocDataWriter.OutputDocData)输出端口 -
OutputDocData:输出合并后的文档数据(DocData)
快速上手示例:合并两份 DocData
from gdisdk.modules.writers import DocDataWriter, MergeDocData
doc_a = DocDataWriter("DocA")
doc_b = DocDataWriter("DocB")
merge_doc = MergeDocData("MergeDoc")
merge_doc.add_dynamic_ports_in("InputA")
merge_doc.add_dynamic_ports_in("InputB")
links = doc_a.OutputDocData >> merge_doc.InputA | doc_b.OutputDocData >> merge_doc.InputB
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
为 True 时:只有当所有动态输入端口都有数据(不为 None)时才输出合并结果;任一端口为 None 则输出 None(常用于阻塞式等待所有分支完成)。 |
Hint
DocDataWriter 在输入数据 “为空但不为 None” (例如空表/空结果)时,会输出一个空的 DocData(data={}, doc_keys_struct={}),这通常有助于在 all_ports_required=True 时避免因为 “空数据” 而阻塞合并。
在 pipeline 中的使用方式
from gdisdk.pipeline import PipeLine
from gdisdk.modules.writers import DocDataWriter, MergeDocData, DocPrinter
pipeline = PipeLine(app_name="MergeDocDataDemo", app_title="合并文档数据示例")
pipeline.workspace = "test"
doc1 = DocDataWriter("Doc1")
doc2 = DocDataWriter("Doc2")
merge_doc = MergeDocData("MergeDoc")
merge_doc.add_dynamic_ports_in("InputDoc1")
merge_doc.add_dynamic_ports_in("InputDoc2")
printer = DocPrinter("PrintDoc")
printer.template = "test/template.docx"
printer.output_name = "merged.docx"
links = (
doc1.OutputDocData >> merge_doc.InputDoc1
| doc2.OutputDocData >> merge_doc.InputDoc2
| merge_doc.OutputDocData >> printer.InputDocData
)
pipeline.add_links(links)
pipeline.run()
更多信息
DocPrinter
模块简介与适用场景
DocPrinter用于将DocData渲染为.docx文档(端口:OutputFile),常用于生成自动报告。模板来源支持:
本地文件路径(
str | Path);GDIM文件服务器上的文件描述(
dict,内部会下载到工作目录后再渲染)。
输出支持保存到本地或上传 GDIM 文件服务器(
save_to_gdim=True)。额外能力:
按
doc_keys_struct的description识别并处理ImagePath/FilesPath/FilePath:模板中可插入图片或子文档;对图片可通过
image_size_type与image_size控制缩放(单位:mm)。
端口说明
输入端口 -
InputDocData:输入文档数据(DocData) -InputToken:鉴权与项目定位信息(token, proj_id, host);仅当save_to_gdim=True时需要;若未提供则从pipeline.gdim_state.token / pipeline.gdim_state.proj_id / pipeline.gdim_state.host获取输出端口 -
OutputFile:输出文件(本地保存时为FilePath/FilesPath;上传 GDIM 时为GdimFile/GdimFiles)
快速上手示例:打印 Word 报告
from gdisdk.modules.readers import GdimTableReader
from gdisdk.modules.writers import DocDataWriter, DocPrinter
from gdisdk.pipeline import PipeLine
from gdisdk.connectors import log_in
pipeline = PipeLine(app_name="GenerateDoc", app_title="生成报告示例")
pipeline.update_gdim_state(
token=log_in(user_name="你的GDIM用户名", password="你的GDIM密码"),
proj_id="你的GDIM项目ID",
)
pipeline.workspace = "test"
read_table = GdimTableReader(mname="ReadTable")
read_table.table_fields = ["钻孔一览表"]
doc_data = DocDataWriter(mname="DocData")
doc_data.precision = 2
print_doc = DocPrinter(mname="PrintDoc")
print_doc.template = "test/钻孔一览表模板.docx"
print_doc.output_name = "钻孔一览表.docx"
links = (
read_table.OutputTables >> doc_data.InputData
| doc_data.OutputDocData >> print_doc.InputDocData
)
pipeline.add_links(links)
pipeline.run()
print(print_doc.OutputFile.data)
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
Word 模板(单个或多个);为 |
|
|
|
输出文件名;为 |
|
|
|
输出目录;若 pipeline 设置了 |
|
|
|
图片缩放按宽或按高;也可按 key 分别配置。 |
|
|
|
图片大小(mm);可统一、按 key 配置,或按 key 为 “图片列表” 逐张配置。 |
|
|
|
是否将生成的文档上传到 GDIM 文件服务器;为 |
上传 GDIM 前检查
是否需要特别处理:当该模块的输出文件需要在 GDIM 中留存、回传或被后续流程消费时,是。
必须检查:
将
save_to_gdim设为True,否则结果通常只会保存在本地路径;不要依赖模块里单独写死的运行时 GDIM 参数;
模板建议通过 pipeline attribute + 前端传入的 GDIM 文件描述(``dict``) 提供,这是上传后的推荐方式。
建议检查:
output_name设为清晰、稳定的文件名,便于结果识别;若仍保留本地模板路径写法,应明确这是本地调试用配置;上传时以前端传入的文件描述为准。
若遗漏,常见现象:
本地运行能生成
.docx文件,但上传 GDIM 后,拿不到期望的GdimFile/GdimFiles输出。
在 pipeline 中的使用方式
from gdisdk.pipeline.pipeline import PipeLine
from gdisdk.modules.writers import DocDataWriter, DocPrinter
pipe = PipeLine(app_name="DocPrinterDemo", app_title="打印 Word 示例")
# pipe.update_gdim_state(token="...", proj_id="...")
pipe.workspace = "test"
doc_data = DocDataWriter("DocData")
printer = DocPrinter("PrintDoc")
printer.template = "test/template.docx"
printer.output_name = "output.docx"
# printer.save_to_gdim = True
# links = doc_data.OutputDocData >> printer.InputDocData
# pipe.add_links(links)
# pipe.run()
更多信息
ExcelPrinter
模块简介与适用场景
ExcelPrinter用于将DocData渲染为.xlsx文档(端口:OutputFile),常用于 “按固定 Excel 模板导出业务表格/第三方格式(如 GEO5)”。模板来源支持本地路径(
str | Path)或 GDIM文件服务器上的文件描述(dict,内部会下载到工作目录后再渲染)。输出支持保存到本地或上传 GDIM 文件服务器(
save_to_gdim=True)。
端口说明
输入端口 -
InputDocData:输入文档数据(DocData) -InputToken:鉴权与项目定位信息(token, proj_id, host);仅当save_to_gdim=True时需要;若未提供则从pipeline.gdim_state.token / pipeline.gdim_state.proj_id / pipeline.gdim_state.host获取输出端口 -
OutputFile:输出文件(本地保存时为FilePath/FilesPath;上传 GDIM 时为GdimFile/GdimFiles)
快速上手示例:按模板导出 Excel(GEO5 示例)
from gdisdk.modules.readers import GdimTableReader
from gdisdk.modules.widgets import PythonCoder
from gdisdk.modules.writers import DocDataWriter, ExcelPrinter
from gdisdk.pipeline import PipeLine
from gdisdk.connectors import log_in
pipeline = PipeLine(app_name="GenerateGeo5Tables", app_title="导出GEO5格式Excel")
pipeline.workspace = "test"
pipeline.update_gdim_state(
token=log_in(user_name="你的GDIM用户名", password="你的GDIM密码"),
proj_id="你的GDIM项目ID",
)
pipeline.local_functions_path = "pipelineImages/gdim/appDataExchange/GenerateGeo5Tables.py"
reader = GdimTableReader(mname="Reader")
reader.table_fields = ["bore_table", "layer_table"]
generate_geo5_tables = PythonCoder(mname="GenerateGeo5Tables")
generate_geo5_tables.add_dynamic_ports_in("InputTables")
generate_geo5_tables.add_dynamic_ports_out("OutputTables")
generate_geo5_tables.local_function_name = "GenerateGeo5Tables"
excel_writer = DocDataWriter(mname="ExcelWriter")
print_excel = ExcelPrinter(mname="PrintExcel")
print_excel.template = "test/GEO5三维地质建模模板.xlsx"
print_excel.output_name = "导出GEO5.xlsx"
links = (
reader.OutputTables >> generate_geo5_tables.InputTables
| generate_geo5_tables.OutputTables >> excel_writer.InputData
| excel_writer.OutputDocData >> print_excel.InputDocData
)
pipeline.add_links(links)
result = pipeline.run()
参数说明
参数名 |
类型 |
默认值 |
说明 |
|---|---|---|---|
|
|
|
Excel 模板(单个或多个);为 |
|
|
|
输出文件名;为 |
|
|
|
指定处理哪些 sheet: |
|
|
|
为 |
|
|
|
是否为表格区域应用外边框。 |
|
|
|
边框样式(如 |
|
|
|
图片缩放按宽或按高;也可按 key 分别配置(保持纵横比)。 |
|
|
|
图片大小(单位:mm);可按 key 配置单张或多张图片的目标尺寸(保持纵横比)。 |
|
|
|
是否上传到 GDIM 文件服务器;为 |
上传 GDIM 前检查
是否需要特别处理:当导出的 Excel 文件需要在 GDIM 中留存、回传或交给后续环节下载时,是。
必须检查:
将
save_to_gdim设为True,否则结果通常只会保存在本地路径;不要依赖模块里单独写死的运行时 GDIM 参数;
模板建议通过 pipeline attribute + 前端传入的 GDIM 文件描述(``dict``) 提供,这是上传后的推荐方式。
建议检查:
output_name设为稳定、可识别的导出文件名;若仍保留本地模板路径写法,应明确这是本地调试用配置;上传时以前端传入的文件描述为准。
若使用
PythonCoder等前置模块生成DocData,一并确认这些模块本身也满足上传 GDIM 的脚本序列化要求。
若遗漏,常见现象:
本地运行能生成
.xlsx文件,但上传 GDIM 后,拿不到期望的GdimFile/GdimFiles输出。
更多信息