案例十二:导出GDIM表数据

案例概述

本案例演示如何将 GDIM 项目中所有表数据导出为 .gtb.xlsx 文件,供外部系统交换、人工下载或二次导入使用。

你将学到

PipeLine 中连接读表、读取项目信息与批量导出模块,生成可在 GDIM 上运行的 .pipe 应用。

  • GdimTableReader 不指定 table_fields,读取项目全部表数据。

  • GdimAppProjectInfoReader 读取项目信息,获取导出所需的 dataTemplateId

  • ExportGdimTablesTableCollection 打包为 gtbxlsx 文件。

  • add_attribute 暴露导出格式,return_results_config 将输出文件返回前端。

实现思路

  1. 创建 PipeLine,设置 workspace,并用 log_inproj_id 调用 update_gdim_state

  2. 创建 GdimTableReader,不设置 table_fields,默认读取项目内所有表及全部字段。

  3. 创建 GdimAppProjectInfoReader,从项目信息应用获取模板 ID,连入 ExportGdimTables.InputTemplateId

  4. 创建 ExportGdimTables,设置 ``save_to_gdim=True``(若需在 GDIM 平台运行并回传文件)。

  5. add_attribute 暴露 format 供前端选择 gtb / xlsxsave_pipeline 保存 .pipe 并运行。

关键代码

本例关键在于读取全部表数据、获取模板 ID 并批量导出,对应代码如下。

read_tables = GdimTableReader("ReadTables")

export_tables = ExportGdimTables("ExportTables")
export_tables.save_to_gdim = True

pipeline.add_links(
    read_tables.OutputTables >> export_tables.InputTables
    | read_project_info.OutputProjectInfo >> export_tables.InputTemplateId
)

pipeline.add_attribute(
    attr_name="format",
    module_name="ExportTables",
    param_name="format",
    attr_title="导出格式",
)

pipeline.set_attributes(format="gtb")
pipeline.run()

更进一步

完整代码请查看以下链接:

exportAllTableDataPipeline.py