ExportAPI - infoplus/docs GitHub Wiki

API 1.1 导出Word/PDF/PNG

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

Format:

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

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",表示一层重复节
}]

template: {uri}

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

page: {integer}

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

HTTP Header: Accept

  • 根据Accept不同,返回文件流或者json格式的meta信息。仅 “Accept: application/json” 时,返回meta信息如下:
{
    "files":                 // 导出后的文件列表
    [{  
        "uri":{string},      // 文件链接地址
        "page":{integetr}    // 第几页,0下标,仅对图片格式有效
    }]
}
  • 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,表明此可选节是否可见(true是可见)
  • variable不支持使用重复节、表中的变量(数组),必须是单值boolean
  • 如果在表单单元格中未成对出现,则隐藏掉其所在整个表格(包括级联向上所有表格,都将隐藏)
  • 如果此“标记对”支持在正文中使用,也支持在某个单元格内使用,但不支持跨单元格
  • 不支持任何形式的 隐藏标签嵌套(包括不同标签间(ABBA),同一标签间(AaaA)

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

格式5:--${variable}--

  • 2020/07/02 新增
  • 表示单元格内容隐藏。即,当variable为false时,存在此标记的单元格的内容不显示
  • 注意:和格式3不同,无需也不支持成对使用;支持重复节表内的数组变量

格式6: ---${variable}---

  • 2020/07/02 新增
  • 分别表示其所在的重复节的一项(一行、一节)隐藏
  • 注意:和格式3不同,无需也不支持成对使用;支持重复节表内的数组变量

API 1.2 导出到Excel

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

Format

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

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
⚠️ **GitHub.com Fallback** ⚠️