前言

在上一篇导出文档番外篇中,我们已经熟悉了怎样根据json数据导出word的文档,生成接口文档,而在这一篇,将对上一篇进行完善补充,增加多种导出方式,实现更加完善的导出功能。

回顾

1. 获取Swagger接口文档的Json文件

2. 解析Json文件数据填充到Html的表格中

3.根据生成的html转work文档

功能

开始

 根据生成的htmlwork文档

        /// /// 静态页面转文件/// /// 静态页面html/// 文件类型/// 上下文类型/// public Stream SwaggerConversHtml(string html, string type, out string contenttype)        {string fileName = Guid.NewGuid().ToString() + type;//文件存放路径string webRootPath = _hostingEnvironment.WebRootPath;string path = webRootPath + @"\Files\TempFiles\";var addrUrl = path + $"{fileName}";            FileStream fileStream = null;var provider = new FileExtensionContentTypeProvider();            contenttype = provider.Mappings[type];try            {if (!Directory.Exists(path))                {                    Directory.CreateDirectory(path);                }var data = Encoding.Default.GetBytes(html);var stream = ByteHelper.BytesToStream(data);//创建Document实例                Document document = new Document();//加载HTML文档                document.LoadFromStream(stream, FileFormat.Html, XHTMLValidationType.None);switch (type)                {case ".docx":                        document.SaveToFile(addrUrl, FileFormat.Docx);break;case ".pdf":                        document.SaveToFile(addrUrl, FileFormat.PDF);break;case ".html"://document.SaveToFile(addrUrl, FileFormat.Html);//当然了,html 如果不用spire,也可以直接生成                        FileStream fs = new FileStream(addrUrl, FileMode.Append, FileAccess.Write, FileShare.None);//html直接写入不用spire.doc                        StreamWriter sw = new StreamWriter(fs); // 创建写入流                        sw.WriteLine(html); // 写入Hello World                        sw.Close(); //关闭文件                        fs.Close();break;case ".xml":                        document.SaveToFile(addrUrl, FileFormat.Xml);break;case ".svg":                        document.SaveToFile(addrUrl, FileFormat.SVG);break;default://保存为Word                        document.SaveToFile(addrUrl, FileFormat.Docx);break;                }                document.Close();                fileStream = File.Open(addrUrl, FileMode.OpenOrCreate);var filedata = ByteHelper.StreamToBytes(fileStream);var outdata = ByteHelper.BytesToStream(filedata);return outdata;            }catch (Exception)            {throw;            }finally            {if (fileStream != null)                    fileStream.Close();if (File.Exists(addrUrl))                    File.Delete(addrUrl);//删掉文件            }        }

增加导出按钮

function LoadExportApiWordBtn() {    $(".information-container").height(240);    $(".topbar").height(35);var btnExport = "
" +
"导出离线文档" +
"

" +
"
" +
"" +
"导出 Word" +
"" +
"" +
"导出 PDF" +
"" +
"" +
"导出 Html" +
"" +
"" +
"导出 Xml" +
"" +
"" +
"导出 Svg" +
"" +
"" +
"

" +
"

";//information-container这个元素是swagger后期动态渲染出来的,所有这里要加个循环判断。//第一次进来如果有这个class直接加载按钮退出if ($("*").hasClass("information-container")) {
$(".information-container").append(btnExport);return;
}//没有元素等待元素出现在加载按钮
timerLoadExportBtn = setInterval(function () {if ($("*").hasClass("information-container")) {
$(".information-container").append(btnExport);
console.log("load ok");
window.clearInterval(timerLoadExportBtn);return;
}
console.log("loading");
}, 788);
}

效果

总结

1. 通过Swagger 导出各类的说明文档,可以根据自己的html模板生成各式的word样式文档说明。

2 .注:搜索关注公众号【DotNet技术谷】--回复【文档生成器】,可获取本篇Swagger生成文档文件。

3. 参考资料:Spire.Doc文件 、Swagger开源地址

phpexcel 导出循环增加列数_基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇)...相关推荐

  1. 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇)

    前言 在上一篇导出文档番外篇中,我们已经熟悉了怎样根据json数据导出word的文档,生成接口文档,而在这一篇,将对上一篇进行完善补充,增加多种导出方式,实现更加完善的导出功能. 回顾 1. 获取Sw ...

  2. 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (番外篇)

    前言 回顾之前的两篇Swagger做Api接口文档,我们大体上学会了如何在net core3.1的项目基础上,搭建一套自动生产API接口说明文档的框架. 本来在Swagger的基础上,前后端开发人员在 ...

  3. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (下篇)

    前言 回顾上一篇文章<使用Swagger做Api文档 >,文中介绍了在.net core 3.1中,利用Swagger轻量级框架,如何引入程序包,配置服务,注册中间件,一步一步的实现,最终 ...

  4. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档(上篇)

    前言 为什么在开发中,接口文档越来越成为前后端开发人员沟通的枢纽呢? 随着业务的发张,项目越来越多,而对于支撑整个项目架构体系而言,我们对系统业务的水平拆分,垂直分层,让业务系统更加清晰,从而产生一系 ...

  5. 基于.NetCore3.1搭建项目系列 —— 认证授权方案之Swagger加锁

    1 开始 在之前的使用Swagger做Api文档中,我们已经使用Swagger进行开发接口文档,以及更加方便的使用.这一转换,让更多的接口可以以通俗易懂的方式展现给开发人员.而在后续的内容中,为了对a ...

  6. phpexcel列数太多,【PHPEXECL】关于使用phpExecl导出数据时,列数超过26个报错问题

    今天遇到一个关于导出excel表的问题,原因是因为导出的数据列数超过26列,为什么超过26列就会报错呢,因为execl表的抬头标示是从A-Z的,所以超过26位之后,会用[/^等等标识符进行标示.其实这 ...

  7. 【Straw-Uniapp-uView】基于 Uniapp + uView 搭建项目基础模板

    文章目录 一.项目简介 1.项目概述 2.相关链接 3.基础功能 4.后端搭建 二.开发手册 全局约束 全局样式约束 全局that约束 代码模板 表单 消息提示 确定取消 http请求 请求拦截器 文 ...

  8. linux文件管理系统开发毕业,定稿毕业论文基于Linux的远程管理系统服务器端的实现word文档(范文1)...

    <[毕业论文]基于Linux的远程管理系统服务器端的实现.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于Linux的远程管理系统服务器端的实现(word文档)& ...

  9. swagger api文档_带有Swagger的Spring Rest API –公开文档

    swagger api文档 创建API文档后,将其提供给涉众很重要. 在理想情况下,此发布的文档将足够灵活以解决任何最后的更改,并且易于分发(就成本以及完成此操作所需的时间而言). 为了使之成为可能, ...

最新文章

  1. 用python实现语音的传输功能_用Python打造一款智能语音聊天小软件!
  2. Iconfont使用手册
  3. EXTjs grid与json数据 转载
  4. 恢复博客更新 --- 逆序单项链表 要求空间复杂度o(1) 时间复杂度o(n)
  5. JZOJ 5452. 【NOIP2017提高A组冲刺11.5】轰炸
  6. boost::multi_array模块测试 index_gen 的代码
  7. python3.7.2怎么使用win7_Win7同时安装Python2和Python3的配置
  8. linux 端口tnpl,Linux和Windows端口占用情况查看
  9. mysql 优化配置参数(my.cnf)
  10. jquery二级联动select
  11. 余凯:不做AI芯片,如何改变世界? | 变局者
  12. 二叉树层级遍历_二叉树中的层级顺序遍历
  13. 境外游导航App选择
  14. 烂土豆搭配令牌窃取提权dll劫持搭配令牌窃取提权不带引号服务路径问题提权不安全的服务权限配置提权
  15. Docker 安装和部署
  16. 笔记:新手SEOer必备的WordPress优化插件
  17. jsp实现数据提交以及jsp数据保存到本地
  18. Newman(一)之Windows下Newman的安装与使用
  19. 联想Y7000安装Ubuntu16.04/Win10双系统,wifi问题,显卡驱动和CUDA10安装
  20. Qt 之 Painter

热门文章

  1. C++17下map不常用的接口函数汇总
  2. Android开发之EditText限制输入中文以及字数长度限制的标准姿势
  3. java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...
  4. iPhone/iOS图片相关(读取、保存、绘制、其它相关)
  5. 【Linux】Linux服务器(centos7)环境搭建java/python3/nginx
  6. 阿里资深技术专家:谁说程序员是吃“青春饭”的?
  7. css文本居中的几种方式
  8. visio篇章--1
  9. poj 3522 Slim Span
  10. CISCO ACL配置全解