java springboot api接口导出xlsx(不使用easyexcle)
说明
在上一个文章里说了,用了阿里巴巴的easyexcle会导致项目build后的jar包体积增大20MB左右,所以想了个曲线救国的方式
其中的\t是制表符,即tab键,\n是回车
你可以自己试着这样写个txt文件,然后改后缀为xlsx,用WPS和OFFICE也是可以打开的
只不过没有花里胡哨的格式而已,不过,无伤大雅
工具类
/**
* 导出卡密为XLSX
* @param request
* @param response
* @param fileName
* @param list
*/
public static void exportCard2Xls(HttpServletRequest request, HttpServletResponse response, String fileName, List<Card> list) {
request.getSession();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//如果用这种方式导出,WPS或者office打开文件时会检测到是SYLK,即此文件是一个文本文件
//这样没啥问题,但是如果第一个字符是"ID",就会有弹窗警告提示,如果用小写的"id"或者其他字符就不会再有弹窗提示
String ret = "id\t卡密\t点数\t秒数\t生成时间\t使用时间\t使用人账号\t卡密状态\t所属软件";
for (Card card : list) {
ret = ret + "\n" + card.getId() + "\t" + card.getCkey() + "\t" + card.getPoint() + "\t" + card.getSeconds() + "\t" +MyUtils.dateToStr(card.getAddTimeName())+ "\t" +MyUtils.dateToStr(card.getLetTimeName()) + "\t" + card.getLetUser() + "\t" + card.getStatusName() + "\t" + card.getFromSoftName();
}
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
outputStream.write(ret.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return;
}
java springboot api接口导出xlsx(不使用easyexcle)的更多相关文章
- 没想到吧,Java开发 API接口可以不用写 Controller了
本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便 ...
- java web api接口调用
Web Services 被W3C进行了标准化定义. Web Services 发布到网上,可以公布到某个全局注册表,自动提供服务URL,服务描述.接口调用要求.参数说明以及返回值说明.比如中国气象局 ...
- java 调用 api接口
/* * Copyright 2018 textile.com All right reserved. This software is the * confidential and propriet ...
- springBoot api接口
application/json 请求接口 @RequestMapping(value = "/getBaseData", method = RequestMethod.POST, ...
- SpringBoot RestFul风格API接口开发
本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...
- SpringBoot实战(二)Restful风格API接口
在上一篇SpringBoot实战(一)HelloWorld的基础上,编写一个Restful风格的API接口: 1.根据MVC原则,创建一个简单的目录结构,包括controller和entity,分别创 ...
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
- SpringBoot + Swagger2 自动生成API接口文档
spring-boot作为当前最为流行的Java web开发脚手架,相信越来越多的开发者会使用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于移动端 ...
- SpringBoot接口 - API接口有哪些不安全的因素?如何对接口进行签名?
在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名.@pdai ...
- 使用Swagger和OpenAPI 3规范定义API接口并集成到SpringBoot
1. OpenAPI 3 规范介绍及属性定义 参考官方定义:https://swagger.io/specification/ 2. 使用OpenAPI 3规范定义API接口 官方样例参考:https ...
随机推荐
- C#/.NET/.NET Core优秀项目和框架2025年2月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...
- 解决macOS无法验证“xxx”的开发者。你确定要打开它吗?
前言 当 macOS 无法验证开发者时,有两种方式解决,可以通过以下步骤来打开 xxx 系统偏好设置: 打开"系统偏好设置". 选择"安全性与隐私". 在&qu ...
- Linux升级openssl、openssh
在项目中,我们经常会发现Linux系统中Open SSH.Open SSL存在高危漏洞,如OpenSSL"心脏出血"漏洞,利用该漏洞,黑客可以获取约30%的https开头网址的 ...
- Pydantic字段级校验:解锁@validator的12种应用
title: Pydantic字段级校验:解锁@validator的12种应用 date: 2025/3/23 updated: 2025/3/23 author: cmdragon excerpt: ...
- C# 多文件打包
public HttpResponseMessage GetZip() { var response = Request.CreateResponse(HttpStatusCode.OK); try ...
- ASP.NET Core 全球化和本地化
留备后观... Globalization and localization in ASP.NET Core 体验 ASP.NET Core 中的多语言支持(Localization)
- 在 .NET 中 使用 ANTLR4
前言 本文将介绍如何在 .NET 中使用 ANTLR4 构建语法分析器.由于篇幅限制,本文不会深入讲解 ANTLR4 的语法规则,相关内容可参考 ANTLR4 的官方文档或其他资料.本文将涵盖以下内容 ...
- shader中的if语句优化
可以借用lerp和step来拼接模仿语句 lerp(a,b,step(value,c))
- FastAPI安全认证中的依赖组合
title: FastAPI安全认证中的依赖组合 date: 2025/04/12 00:44:08 updated: 2025/04/12 00:44:08 author: cmdragon exc ...
- Windows tomcat简单使用
目录 1 常见服务器 2 Tomcat下载安装 3 配置环境 3.1 jdk环境 3.2 tomcat环境 4 启动/关闭 tomcat 5 访问tomcat 6 修改tomcat端口 7 部署项目 ...