想在Java中实现Excel和Csv的导出吗?看这就对了

  • 时间:
  • 浏览:1

这是在避免请求被浏览器cancel掉的过程中,不怎么要的一4个参考,分享给让我门都让我门都。

fillDataToCsv主也不我抽离出来为csv填充一行一行的数据的。

fillDataToXlsx的用途与csv一样,为xlsx文件的每一行刷上数据。

针对每一次的HTTP请求,服务器会自动创建一4个HttpServletResponse对象和请求对象相对应。响应对象能不到对当前的请求进行重定向,自定义响应体的头部,设置返回流等等。

新建下载xlsx文件的接口。

最后再次给出项目地址,让我门都让我门都可能不到 理解到其中的其他地方,不妨把项目clone下来,当事人亲自操作一波。

先来一4个简单的例子。首先在controller中新建曾经一4个接口。

最近在项目中遇到一4个需求,需要后端提供一4个下载Csv和Excel表格的接口。你这俩接口接收前端的查询参数,针对那些参数对数据库做查询操作。将查询到的结果生成Excel和Csv文件,再以字节流的形式返回给前端。

当前端通过http请求访问服务器接口的事先,http中的所有的请求信息还会 封装到HttpServletRequest对象中。例如,让他通过你这俩对象获取到请求的URL地址,请求的土办法,请求的客户端IP和完全主机名,Web服务器的IP和完全主机名,请求行中的参数,获取请求头的参数等等。

也不我运行项目,调用http://localhost:60 60 /csv,就能不到下载示例的csv文件。示例如下。

response.getOutputStream()则是用于创建字节输出流,在导出csv文件的controller代码结尾,通过工具类中的群克隆文件函数将字节流写入到输出流中,从而将csv文件以字节流的形式返回给客户端。

让我门都让我门都新建一4个导出工具类,来专门负责导出各种格式的文件。代码如下。

也不我运行项目,调用http://localhost:60 60 /xlsx,就能不到下载示例的csv文件。示例如下。

上方新建的导出工具类中,不到导出csv的函数,接下来让我门都让我门需要去掉 导出xlsx的函数。

前端拿到你这俩流文件事先,最开始英文用ajax来接收,也不我前端发送的请求却被浏览器cancel掉了。后后发现,发展了不到 之久的Ajax果然不支持流文件下载。后后前端去掉 了最原始的XMLHttpRequest,才修复了你这俩疑问。

首先给出项目源码的地址。这是源码,欢迎让我门都让我门都star可能提MR。

其中this.getFileName(request, "测试数据.csv")函数是用来获取导出文件名的函数。单独提出来是可能不同浏览器使用的默认的编码不同。例如,可能使用默认的UTF-8编码。在chrome浏览器中下载会再次出显中文乱码。代码如下。