案例十三:将数据导入到GDIM

案例概述

本案例演示如何将 .gtb.xlsx 文件写入 GDIM 项目。

你将学到

PipeLine 中连接文件读取与批量写表模块,生成可在 GDIM 上运行的 .pipe 应用。

  • ReadGtbFile 读取 .gtb / .xlsx 文件,重建为 TableCollection

  • validate_template_id 校验文件模板 ID 与目标项目是否一致。

  • GdimTableWriterTableCollection 批量写回 GDIM 项目。

  • add_attribute 暴露 file 参数,供前端上传导入文件。

实现思路

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

  2. 创建 ReadGtbFile,设置 validate_template_id=True;GDIM 运行时 file 由前端上传(dict 格式),本地测试可传入文件路径。

  3. 创建 GdimTableWriter,设置 validation_level="full" 做完整字段校验,raise_error=False 使单表写入失败时不中止整个 Pipeline。

  4. OutputTables >> InputData 连成链路,add_attribute 暴露 file 供用户选择导入文件。

  5. save_pipeline 保存 .pipe 并运行;本地测试时通过 set_attributes(file=...) 指定 .gtb.xlsx 路径。

关键代码

本例关键在于读取导出文件并批量写回 GDIM,对应代码如下。

read_gtb = ReadGtbFile("ReadGtbFile")
read_gtb.validate_template_id = True

write_tables = GdimTableWriter("WriteGdimTables")
write_tables.validation_level = "full"

pipeline.add_links(read_gtb.OutputTables >> write_tables.InputData)

pipeline.add_attribute(
    attr_name="file",
    module_name="ReadGtbFile",
    param_name="file",
    attr_title="导入文件(.gtb 或 .xlsx)",
)

pipeline.set_attributes(file="examples/exportAllTableData/gdim_tables.gtb")
pipeline.run()

更进一步

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

importAllTableDataPipeline.py