- 根据Word模版(docx格式),填充表单数据并导出为docx或pdf或png文件。
- png文件每页一个
POST /{format}?template={url}&data={json}&fields={json}&page={integer}
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中定义)数据,将按条形码图片方式导出
[{
"name":{string}, // 字段的name
"type":{string}, // 可枚举,具体请参见 [Controls](Controls)中定义的所有数据类型
"label":{string}, // 仅对Excel导出:该字段描述性质的标签
"merge":{boolean}, // 仅对Excel导出:该列是否自动合并单元格,默认false
"groupName":{string}, // 仅对Word/PDF导出:格式形如:"Resume//groupStudy",表示一层重复节
}]
- 表单模版的地址,要求可被ExportAPI访问到。
HTTP Header: Accept
- 根据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)中的对应字段的值
格式2:${groupXXX} 或 书签 "groupXXX"
- 必须是某个表格的某行的第一个单元格,表明此表格为重复表/节
- 重复的列区域:表格的所有列
- 重复的行区域:是此标签所在的行到此表格的最后一行
- 表明此处是一个可选节的开始,到下一个同样标记结束,必须成对出现
- variable可以是可以是任何data中可以查询到的变量,包括表单变量
- variable的值必须为boolean,默认为true,表明此可选节是否可见(true是可见)
- variable不支持使用重复节、表中的变量(数组),必须是单值boolean
- 如果在表单单元格中未成对出现,则隐藏掉其所在整个表格(包括级联向上所有表格,都将隐藏)
- 如果此“标记对”支持在正文中使用,也支持在某个单元格内使用,但不支持跨单元格
- 不支持任何形式的 隐藏标签嵌套(包括不同标签间(ABBA),同一标签间(AaaA)
格式4:${fieldXXX:format} 或 ${XXX:format}
- 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字段
| 类型 |
含义 |
| string |
字符串 |
| integer |
数字 |
| boolean |
布尔 |
| double |
浮点型 |
| file |
文件,从JSON中提取 |
| doc |
文档,从JSON中提取 |
| date |
自动识别:数值型视为Unix时间戳,字符串型格式 'yyyy-MM-dd' |
- data=[ [1,"hello"], [2,null], [3,"world"] ]
- fields=[ {"name":"index","type":"integer","label":"序号",merge":true}, {"name":"index","label":"内容"} ]
- label=true
- row=2,column=1