ExportAPI - infoplus/docs GitHub Wiki
- 异步GraphQL版本请参考 ExportAPI v2
- 根据Word模版(docx格式),填充表单数据并导出为docx或pdf或png文件。
- png文件每页一个
POST /{format}?template={url}&data={json}&fields={json}&page={integer}
- 只支持docx或pdf
- 其中key即为下面的fields的name
- 具体说明可参考 FormData 的"数据表示"=>"传输数据"
- 图片请使用url或InfoPlus的File格式(JSON),如:{ "name":"avatar.png", "uri":"http://example.com/a.png" }
- 物品类型(Thing,在fields的type中定义)数据,将按条形码图片方式导出
- 给出所有涉及到的字段列表,定义如下:
[{
"name":{string}, // 字段的name
"type":{string}, // 可枚举,具体请参见 [Controls](Controls)中定义的所有数据类型
"label":{string}, // 仅对Excel导出:该字段描述性质的标签
"merge":{boolean}, // 仅对Excel导出:该列是否自动合并单元格,默认false
"groupName":{string}, // 仅对Word/PDF导出:格式形如:"Resume//groupStudy",表示一层重复节
}]
- 表单模版的地址,要求可被ExportAPI访问到。
- 仅返回指定页的内容,仅对图片格式有效,0下标。
- 根据Accept不同,返回文件流或者json格式的meta信息。仅 “Accept: application/json” 时,返回meta信息如下:
{
"files": // 导出后的文件列表
[{
"uri":{string}, // 文件链接地址
"page":{integetr} // 第几页,0下标,仅对图片格式有效
}]
}
- png等图片格式,按流返回时,按page参数(默认0)返回指定页的图片。
- 200:返回导出后的文件下载(文件的二进制流)
- 400:Bad Request/参数错误,返回错误JSON格式为"Response",参见InfoPlusAPI中的Data Types节
- 403:没有权限使用此API
- 500:服务端导出失败,返回JSON格式同上
在Word模版文件中,通过插入如特定格式的文本来相应功能。
- ExportAPI会将此替换为表单数据(data)中的对应字段的值
- 必须是某个表格的某行的第一个单元格,表明此表格为重复表/节
- 重复的列区域:表格的所有列
- 重复的行区域:是此标签所在的行到此表格的最后一行
- 表明此处是一个可选节的开始,到下一个同样标记结束,必须成对出现
- variable可以是可以是任何data中可以查询到的变量,包括表单变量
- variable的值必须为boolean,默认为true,表明此可选节是否可见(true是可见)
- variable不支持使用重复节、表中的变量(数组),必须是单值boolean
- 如果在表单单元格中未成对出现,则隐藏掉其所在整个表格(包括级联向上所有表格,都将隐藏)
- 如果此“标记对”支持在正文中使用,也支持在某个单元格内使用,但不支持跨单元格
- 不支持任何形式的 隐藏标签嵌套(包括不同标签间(ABBA),同一标签间(AaaA)
- 2019/12/16 新增
- 仅支持date或datetime类型
- format 参数格式参考:.NET Custom date and time format strings 举例:${fieldDate:yyyy-MM-dd HH:mm:ss},${field1:yyyy}
- 2020/07/02 新增
- 表示单元格内容隐藏。即,当variable为false时,存在此标记的单元格的内容不显示
- 注意:和格式3不同,无需也不支持成对使用;支持重复节表内的数组变量
- 2020/07/02 新增
- 分别表示其所在的重复节的一项(一行、一节)隐藏
- 注意:和格式3不同,无需也不支持成对使用;支持重复节表内的数组变量
- 根据数据直接产生Excel文件,Excel模板可以给出也可不给
POST /xlsx?template={url}&data={object[][]}&fields={json}&label={boolean}&row={int}&column={int}
- Excel模板地址,比如包括给ExportAPI可访问
- 格式: 二维数组,但数据类型可能有所不同
- 可选。
- 具体格式参见前面章节
- fields的下标和data的最右便下标匹配
- 当merge=true时,API会自动把null值对应的单元格和上面的格子合并
- 可选,默认为false。当label=true时,第一行为标题栏,显示fields的label字段
- 可选,启始行、列的位置,0下标。默认是0,0
- 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 |