# Export API

API 1.1 导出Word/PDF/PNG

  • 根据Word模版(docx格式),填充表单数据并导出为docx或pdf或png文件。
  • png文件每页一个

# Format:

POST /{format}?template={url}&data={json}&fields={json}&page={integer}
1

# Parameters:

# format: {string}

  • 只支持docx或pdf

# data: key-value(string-object) map

  • 其中key即为下面的fields的name
  • 具体说明可参考 FormData 的"数据表示"=>"传输数据"
  • 图片请使用url或InfoPlus的File格式(JSON),如:{ "name":"avatar.png", "uri":"http://example.com/a.png" }
  • 物品类型(Thing,在fields的type中定义)数据,将按条形码图片方式导出

# fields:

  • 给出所有涉及到的字段列表,定义如下:
[{
    "name":{string},      // 字段的name
    "type":{string},      // 可枚举,具体请参见 [Controls](Controls)中定义的所有数据类型
    "label":{string},     // 仅对Excel导出:该字段描述性质的标签
    "merge":{boolean},    // 仅对Excel导出:该列是否自动合并单元格,默认false
    "groupName":{string}, // 仅对Word/PDF导出:格式形如:"Resume//groupStudy",表示一层重复节
}]
1
2
3
4
5
6
7

# template: {uri}

  • 表单模版的地址,要求可被ExportAPI访问到。

# page: {integer}

  • 仅返回指定页的内容,仅对图片格式有效,0下标。

# HTTP Header: Accept

  • 根据Accept不同,返回文件流或者json格式的meta信息。仅 “Accept: application/json” 时,返回meta信息如下:
{
    "files":                 // 导出后的文件列表
    [{  
        "uri":{string},      // 文件链接地址
        "page":{integetr}    // 第几页,0下标,仅对图片格式有效
    }]
}
1
2
3
4
5
6
7
  • png等图片格式,按流返回时,按page参数(默认0)返回指定页的图片。

# 返回值因Response的状态码而异:

  • 200:返回导出后的文件下载(文件的二进制流)
  • 400:Bad Request/参数错误,返回错误JSON格式为"Response",参见InfoPlusAPI中的Data Types节
  • 403:没有权限使用此API
  • 500:服务端导出失败,返回JSON格式同上

# Word template design

在Word模版文件中,通过插入如特定格式的文本来相应功能。

# 格式1:${fieldXXX} 或 ${XXX}

  • ExportAPI会将此替换为表单数据(data)中的对应字段的值

# 格式2:${groupXXX} 或 书签 "groupXXX"

  • 必须是某个表格的某行的第一个单元格,表明此表格为重复表/节
  • 重复的列区域:表格的所有列
  • 重复的行区域:是此标签所在的行到此表格的最后一行

# 格式3:==${variable}==

  • 表明此处是一个可选节的开始,到下一个同样标记结束,必须成对出现
  • variable可以是可以是任何data中可以查询到的变量,包括表单变量
  • variable的值必须为boolean,默认为true,表明此可选节是否可见

# 格式4:${fieldXXX:format} 或 ${XXX:format}

# API 1.2 导出到Excel

  • 根据数据直接产生Excel文件,Excel模板可以给出也可不给

# Format

POST /xlsx?template={url}&data={object[][]}&fields={json}&label={boolean}&row={int}&column={int}
1

# Parameters:

# template:{url}

  • Excel模板地址,比如包括给ExportAPI可访问

# data:{object[][]}

  • 格式: 二维数组,但数据类型可能有所不同

# fields:{json}

  • 可选。
  • 具体格式参见前面章节
  • fields的下标和data的最右便下标匹配
  • 当merge=true时,API会自动把null值对应的单元格和上面的格子合并

# label:{boolean}

  • 可选,默认为false。当label=true时,第一行为标题栏,显示fields的label字段

# row/column:{int}

  • 可选,启始行、列的位置,0下标。默认是0,0

# 举例:

# POST /xlsx

# 参数:

  • data=[ [1,"hello"], [2,null], [3,"world"] ]
  • fields=[ {"name":"index","type":"integer","label":"序号",merge":true}, {"name":"index","label":"内容"} ]
  • label=true
  • row=2,column=1

# 导出结果为:

序号 内容
1 Hello
2
3 World