之前写了篇关于Swagger2的博文 Swagger2生成在线接口文档并导出pdf文件,可以把swagger在线接口文档导出成pdf文件本地查看,当然swagger2本身是支持导出markdown格式的,所以这两种格式没啥问题了。
现在有个需求是这样的:把接口和接口描述放在表格里呈现出来,那么要么是excel的表格,要么是word的表格,两种格式都试一下

一、Excel格式

第三方的项目源码在这里:https://github.com/ghdefe/swagger-json-to-csv,下载下来导入到Idea

核心代码如下:

public class JsonToTxtApplication {public static void main(String[] args) throws IOException {SpringApplication.run(JsonToTxtApplication.class, args);FileInputStream in = new FileInputStream("1.txt");JsonNode jsonNode = new ObjectMapper().readTree(in);/*** 取所有数据并存到HashMap中*/String api;HashMap<String, List<Root>> hm = new HashMap<>();JsonNode node = jsonNode.findValue("paths");Iterator<String> stringIterator = node.fieldNames();while (stringIterator.hasNext()) {//apiJsonNode tags = node.findValue((api = stringIterator.next())); Iterator<String> methodsname = tags.fieldNames();while (methodsname.hasNext()) {//方法String method = methodsname.next(); JsonNode methods = tags.findValue(method);String name = methods.findValue("tags").get(0).asText();String description = methods.findValue("description").asText();//当前查询到的一个接口数据放到hashmap里管理Root root = new Root(name, method, api,description);  if (hm.containsKey(root.getName())) {List<Root> roots = hm.get(root.getName());roots.add(root);hm.put(root.getName(), roots);} else {ArrayList<Root> roots = new ArrayList<>();roots.add(root);hm.put(root.getName(), roots);}}}/*** 获得name的顺序,并按顺序写入csv*/File file = new File("result.csv");//excel不能读取utf-8编码的csv文件BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "GBK"));    Iterator<JsonNode> names = jsonNode.findValue("tags").iterator();while (names.hasNext()) {String name = names.next().findValue("name").asText();Iterator<Root> iterator1 = hm.get(name).iterator();bufferedWriter.write(name + ",");Boolean isFirst = true;//如果是第一行增加name,如果不是填入空白格while (iterator1.hasNext()) {          if (!isFirst) {bufferedWriter.write(",");} else {isFirst = false;}Root next = iterator1.next();bufferedWriter.write(next.getMethod() + "," +next.getApi() + "," + next.getDescription());bufferedWriter.newLine();}}bufferedWriter.close();//打开生成的csv文件Runtime.getRuntime().exec("cmd /c start C:/Export/result.csv");System.out.println("done");}}

此方法输入的是swagger json文件(api-docs),比如说你的swagger在线接口文档地址为
http://localhost:8080/doc.html,同时你的swagger配置文件里设置了groupName(“test”),那么你的swaager json在线地址为
http://localhost:8080/v2/api-docs?group=test,把这个链接下的内容复制下来就是该方法的输入文件,即代码中的1.txt
此方法输出的结果是一个csv文件,表格形式列出接口,如下图

二、Word格式

word格式就比excel要稍微复杂一点了
同样我们使用第三方的轮子,https://github.com/JMCuixy/swagger2word
改一下templates文件夹下的模板文件,来生成我需要的word格式接口文档
使用起来也很方便了,直接使用上一步生成csv的源文件1.txt,当然直接用http://localhost:8080/v2/api-docs?group=test地址也行更方便

点击try it out,执行接口,可能需要一点时间,执行完成后,点击下载

不合适的可以更改模板样式,模板文件在这里

打开word文件查看效果

三、参考博文

1、Swagger文档转Word 文档

2、提取swagger内容到csv表格,excel可打开

Swagger导出word和excel文档相关推荐

  1. 计算机无法建立word文档,(电脑中右键不能新建word和excel文档怎么办)为何电脑无法新建excle...

    电脑中右键不能新建word和excel文档怎么办 开始,找到运行命,输入regedit,打开注册表. 在左侧找到hkey_classes_root目录,并展开. 首先,我们利用ctrl f 快捷键,查 ...

  2. word、excel文档内容更新技术方案

    需求背景 惯例先说下背景. 生产.研发业务上往往使用大量word和excel文档来作为资料载体,如操作规程.控制手册.卡片--,这些文档会反复使用到一些设备.工艺等参数数据.参数属性主要是名称.编码. ...

  3. word插入excel文档显示图标的方法

    描述:word插入excel文档显示图标的方法 步骤: 菜单栏->插入->对象 由文件创建->浏览文件夹 勾选显示为图标->确定 文件就被插入word了

  4. c#获取txt,word,excel文档内容方法

    获取txt文档的内容  1 public string ResumeTxt(string path)  2 {  3    string str = string.Empty;  4         ...

  5. libreoffice python 操作word及excel文档

    1.开始.关闭libreoffice服务: 开始之前同步字体文件时间,是因为创建soffice服务时,服务会检查所需加载的文件的时间,如果其认为时间不符,则其可能会重新加载,耗时较长,因此需事先统一时 ...

  6. Word及Excel文档的Python脚本处理

    第一部分. Openpyxl部分: 1. 使用安装openpyxl的正确的指令是: A. pip install openpyxl B. install openpyxl C. setup openp ...

  7. libreoffice python_libreoffice python 操作word及excel文档的方法

    1.开始.关闭libreoffice服务: 开始之前同步字体文件时间,是因为创建soffice服务时,服务会检查所需加载的文件的时间,如果其认为时间不符,则其可能会重新加载,耗时较长,因此需事先统一时 ...

  8. php word excel,PHP 生成word 和 excel 文档

    xmlns="http://www.w3.org/TR/REC-html40"> word 中要显示的内容, 由于word支持html格式, 所以中间这一部分使用html文档 ...

  9. springboot中使用freemarker根据flt模板导出word、pdf文档

    1.导包: <!--FreeMarker --> <dependency><groupId>org.springframework.boot</groupId ...

最新文章

  1. 网络推广——网络推广专员从多角度分析网站关键词排名受影响因素
  2. 数据库系列之T-SQL(存储过程)
  3. 在导出本地文件时报了ABAP错误
  4. 销售流程图_每天一个流程图制作——销售发货业务流程图-19
  5. group by用法 mysql_MYSQL GROUP BY用法详解
  6. Linux基础-2文件及目录管理
  7. JAVA 中的 Collection 和 Map 以及相关派生类的概念
  8. 从ResNet101到ResNet50
  9. 【干货】前端开发者最常用的六款IDE
  10. 解决Windows聚焦不更新图片问题
  11. CorelDRAW零基础入门到精通
  12. Ubuntu设置静态IP地址的几种方法
  13. python控制风扇_Python语音控制普通风扇实现教程
  14. VMware中性能分配的问题
  15. pmp项目管理师证书有用么?
  16. Jyutping(粵拼)詳細教程
  17. Git stash 的用法,将暂存区的内容缓存并移除,解决切换分支前的内容缓存问题
  18. 知乎万赞:计算机应届生月薪大多是多少?
  19. ADB 用法大全 【转】
  20. 王道数据结构代码——线性表

热门文章

  1. TP-LINK WR840N刷OPENWRT成功(WR841N v7也适用,刷回原厂同样也行)
  2. 工业机器人的6大应用场景
  3. 基于jsp+mysql+ssm的办公用品领用管理系统
  4. 【pytorch】自己实现精简版YOLOV3【二】,通过darknet_53输出的特征图:得到预测框位置、置信度以及目标类别
  5. 【Linux】CISI与RISC指令集
  6. 树莓派点亮LED灯需要几行代码?3行。小孩子都能学会
  7. 2019-HRNet CVPR
  8. 中国激光雷达行业发展模式及十四五前景预测报告2021-2027年版
  9. 京东苏宁价格战起底:裸泳者刺向阵痛者
  10. uni-app editor富文本编辑器