Skip to content
marstone edited this page Jul 26, 2024 · 10 revisions

概述

  • 本服务旨在将数据转化成文件。支持的文件类型包括:
    • Excel
    • Word(暂不支持)
    • PDF(暂不支持)
    • PNG(暂不支持)
  • 本服务为导出API的GraphQL版,原导出API的REST版点此访问
    • 区别1:本版本直接传输文件内容,而是传输文件URL
    • 区别2:本版本支持异步导出

定义

type Mutation {

  # 将数据导出成文件
  exportFile(
    # 导出文件格式,[xslx|docx|pdf|png] 枚举,大小写不敏感
    format: String!, 
    # 导出的文件名,可选。导出多个文件时会追加序号。
    name: String,
    # 按照 token 查询导出进度,可选
    # 如 token 有效,将会忽略data等后续参数
    # 如 token 无效但有 data 参数,则会重新导出并返回新 token
    # 如 token 无效且无 data 参数,报 EXPORT_TOKEN_INVALID 错误
    token: String,
    # 需要导出的数据,JSON 格式。
    # 对于xlsx导出,格式为:[[ {object} ]] (对象二维数组,对象数据类型需符合 fields[].type )
    # 其他格式导出时,data要求参考'补充说明[1]'。
    data: String
    # 字段列表,JSON 格式的数组,格式为: { "type": {字符串}, "label": {字符串} }
    # type 可选值参考'补充说明[2]'
    fields: String
    # 可填充的文件模版的URL,仅 docx|pdf|png 格式支持且必须,xlsx不支持 
    template: String,
    # 仅xlsx支持。默认值false。当label=true时,第一行为标题栏,显示fields的label字段
    label: Boolean 
    # 安全导出:导出文件的 uri 带有一次性 token,下载一次之后链接失效。默认 false
    secure: Boolean
  ): ExportResult
}

# 导出结果
type ExportResult {
  # 当前导出任务凭据,用于后续进度查询
  token: String!
  # 当前处理进度(0, 100),仅当100时表示导出完成
  progress: Int!
  # 导出后文件列表。仅图片格式(png)支持多文件导出。进度不到100时可不给出
  files: [ExportFile]
}

# 导出的文件
type ExportFile {
  # 文件下载地址 
  uri: String!
}

补充说明

  • [1] data格式参考:流程数据
  • [2] type参数:流程表单数据类型
    • 对于 KV类型(比如 User Organize Code)的字段,将自动获取 字段名_Name 作为显示值导出
    • 对于 File 的字段,如果 mime = image/*,则获取uri导出为图片;否则获取nameuri导出为超链接。

报错

错误码 Explained
BAD_PARAMETER 参数不合法。并需在detail中给出具体有问题的参数及解释
EXPORT_TOKEN_INVALID token 参数无效,且未给出 data 参数

示例

参数

  • format: 'xlsx'
  • data='[ [1,"hello"], [2,null], [3,"world"] ]'
  • fields='[ {"type":"integer","label":"序号"}, {"type":"string","label":"内容"} ]'
  • label=true

导出结果

序号 内容
1 Hello
2
3 World
Clone this wiki locally