OpenCSV web下载csv文件demo

2023-11-09

OpenCSV web下载csv文件demo
pom.xml

<dependency> 
	<groupId>com.opencsv</groupId> 
	<artifactId>opencsv</artifactId> 
	<version>4.1</version> 
</dependency> 

	@RequestMapping(value = "/batchScan!exportReport.action")
	public void exportReport(HttpServletRequest request, HttpServletResponse response) {
		try {
			response.setContentType("text/csv");
			response.setCharacterEncoding("utf-8");
			String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
			response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".csv");
			
			PrintWriter printWriter = response.getWriter();
			CSVWriter writer = new CSVWriter(printWriter, ',');
			List<DemoData> data = data();

			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String[] header = new String[]{"字符串", "日期", "数据"};
			writer.writeNext(header);
			for (DemoData demoData : data) {
				String[] array = new String[3];
				array[0] = demoData.getString();
				array[1] = dateFormat.format(demoData.getDate());
				array[2] = demoData.getDoubleData().toString();
				writer.writeNext(array);
			}
			writer.flush();
			writer.close();
			request.getSession().setAttribute("exportIsEnd", "true");
		} catch (Exception e) {
			request.getSession().setAttribute("exportIsEnd", "exception");
			e.printStackTrace();
		}
	}

产生数据

    public List<DemoData> data() {
        List<DemoData> list = new ArrayList<DemoData>();
        for (int i = 0; i < 10; i++) {
            DemoData data = new DemoData();
            data.setString("字符串" + i);
            data.setDate(new Date());
            data.setDoubleData(0.56);
            list.add(data);
        }
        return list;
    }

实体类

public class DemoData {
    private String string;
    private Date date;
    private Double doubleData;
    //get,set方法省略
}

参考:https://blog.csdn.net/haqiang555/article/details/97942797

EasyExcel web下载excel参见:https://blog.csdn.net/weixin_43614067/article/details/116262853

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCSV web下载csv文件demo 的相关文章

  • 从 J2SE 5.0 学习 Java SE 6 有多难?

    我是新来的 我有一个简单的问题 希望有人能帮助我 我即将开始学习Java 正在寻找一本好的教材来使用 我发现 Y Daniel Liang 的 Java 编程入门 评价很高 但我想知道是否可以使用旧的第 6 版 2006 年 7 月 22
  • 匿名类*总是*维护对其封闭实例的引用吗?

    我正在处理一些代码 其中一个对象 foo 正在创建另一个对象 对象 bar 并将其传递给Callable 之后 foo 将返回 bar 然后我希望 foo 变得无法访问 即 可用于 垃圾收集 我最初的想法是创建Callable匿名 例如 c
  • JCombobox 字符串项(可见)和整数键(固有)

    我有一个数据库模式 它将作为 JTable 列显示在 JCombobox 中以选择名称 但我希望将 ID 字段插入 作为外键 到另一个表中 通常 在下拉列表中选择一个项目 将所选项目带到组合框的显示区域 我想要做的是 当选择组合框中的任何项
  • Junit测试中LocalDateTime反序列化的问题

    我有问题LocalDateTime反序列化Junit测试 我有简单的REST API返回一些DTO目的 当我呼叫端点时 响应没有问题 它是正确的 然后我尝试编写单元测试 得到MvcResult并使用ObjectMapper将其转换为我的DT
  • Java生成范围内不重复的随机数

    我想生成 1 到 4 范围内的随机数 包括 4 这是我的代码 int num r nextInt 4 1 r is instance of Random 但是 我在循环中运行上述代码 并且不想重复随机数 现在发生的事情我经常得到 1 1 1
  • 通过 PHP 将 CSV 导入 MYSQL

    我正在将 CSV 文件导入到我的管理区域 并且我想将文件添加到我的数据库中 我的 PHP 代码import php is
  • 堆内存与对象内存

    根据一篇关于Java内存和特性的论文 内存分数分为两种类型 堆内存 即应用程序在运行时消耗的内存 对象内存 即程序中使用的各种对象分配的内存 例如整数和字符串等 他们的意思是stack当他们说时的记忆object记忆 或者它们是什么意思 很
  • 注释处理器可以用于代码生成吗?

    假设我定义了一个名为 MyAnnotation 有一个班级X其声明为 MyAnnotation class X 现在在编译时我想检查所有带有注释的类 MyAnnotation并对更多需要在同一进程中编译的 java 源文件进行一些代码生成
  • 从多个地方绘制 JPanel

    我目前正在为学校开发一款 Java 2D 游戏 我们必须使用抽象工厂设计模式 对于 2D 实现 我使用工厂如下 public class Java2DFact extends AbstractFactory public Display d
  • 公共领域有哪些替代方案?

    我正在用 java 编写一个游戏 正如问题标题建议的那样 我在类中使用公共字段 暂且 据我所知 公共领域很糟糕 我有一些理解其中的原因 但如果有人能澄清为什么你不应该使用它们 那将不胜感激 问题是 从我所看到的来看 这似乎是合乎逻辑的 是使
  • Jackson 中没有注释的多态反序列化

    我有一个CloudEvent
  • 如何在不打开浏览器的情况下查看 Android 应用程序中的网页?

    嘿 我正在开发一个 Android 应用程序 我想连接到该应用程序内的网络 不过 我在某种程度上尝试过 WebView 但它在我的目录中显示的文件很好 但当连接到 google com 时 它显示错误 然后我添加了这个文件
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 自动将通配符导入重构为 IntelliJ 中的显式导入(适用于 Scala/Java)

    考虑下面的代码 是否可以让 IntelliJ 自动将每个通配符导入重构为显式导入 无论范围内使用什么 例如import scalatags JsDom all into import scalatags JsDom all ol li di
  • Java 8 流过滤器 - 基于排序的更新

    我正在尝试对过滤器中的字段进行排序 输入文件 样本记录 DocumentList Document id 5975ff00a213745b5e1a8ed9 u id mailboxcontent id 5975ff00a213745b5e1
  • 尝试接收 UDP 多播时出现空指针异常

    在尝试了几次让简单的 UDP 多播接收器工作后 我感到很困惑 在我自己的代码无法按预期工作后 我尝试了 vertx 文档中发布的确切示例 DatagramSocket socket vertx createDatagramSocket ne
  • 在Java中将32bpp图像转换为16bpp图像

    如何使用 Java 库将 32bpp 图像 ARGB 转换为 16bpp 图像 ARGB 出于我的好奇 在像素级别 这种转换有什么作用 如果我有一个保存像素值 包含所有通道 的 int 值 那么在转换发生后该 int 会有什么不同 32 位
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要
  • java 更新进度条

    我有一个 JFrame 和以下组件 JButton jButton1 Progress Bar ProgressBar 及其公共静态 JLabel 状态及其公共静态 单击按钮时会执行不同的语句 我想在每个语句后更新我的进度条 这是我的代码

随机推荐

  • 局域网计算机无法配置网关,在内网中,为什么不设置“默认网关”计算机也能互相通讯?...

    在内网中不设置 默认网关 的计算机也能互相通讯 是因为在同一内网 同一VLAN同一子网 中两台计算机机之间是不需要通过默认网关来通信的 是通过交换机 或路由器 上的列表来匹配进行数据传输的 下面讲一下这样子的通信原理 一 PC A向PC C
  • 关键路径例题图表_计算题专题:关键路径法(CPM)

    关键路径法 Critical Path Method CPM 通过分析项目过程中哪个活动序列进度安排的总时差最少来预测项目工期的网络分析 产生目的 为了解决 在庞大而复杂的项目中 如何合理而有效地组织人力 物力和财力 使之在有限资源下以最短
  • 只出现一次的数字 LeetCode C++

    目录 题目描述 方法一 vector 方法二 set 方法三 异或 题目描述 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 你的算法应该具有线性时间复杂度 你可以不使用额外空间来
  • 爆库原理剖析

    一 方式 暴库的方式有多种多样 我知道的就有3种以上 常见的暴的方法有 5c类暴 conn asp暴 ddos暴等等 二 原理 5c 暴库法 它不是网页本身的漏洞 而是利用了 解码方式中的一个特性 如果 安全设置不周全 而网页设计者未考虑
  • 解决seaborn无法加载数据集错误

    欢迎关注笔者的微信公众号 问题描述 因研究需要 今天在了解seaborn 这个可视化框架 但是在第一行代码就报错了 好嘛 看看啥错 看到这我就知道大概啥问题了 国内网络对国外的网站很不友好 解决方案 解决方法也很简单 主要有以下三种 ke
  • 关于win7下styleSheet设置不成功

    为 QTreeWidget 设置 style sheet 当使用下面的语句时 在 Windows Vista 和 Windows 7 下是失败的 QTreeWidget selection background color rgb 51 1
  • Java怎样求解n的阶乘 n!(详解)

    n 是表示为自然数n的阶乘 即 n 1 2 3 n 2 n 1 n 如 9 9 8 7 6 5 4 3 2 1 阶乘也可以递归方式定义 0 1 n n 1 n 希望对您有所帮助 具体代码实现 import java util Scanner
  • 软件测试分类

    一 软件测试的分类 1 按开发阶段 单元测试 集成测试 系统测试 验收测试 2 按测试实施组织 第三方 3 按测试执行方式 静态测试 动态测试 4 按是否查看代码 黑盒测试 白盒测试 灰盒测试 5 按是否手工执行划分 手工测试 自动化测试
  • subList方法踩坑记录

    前言 现有一个简化的需求 假设有一个点位列表 1 2 4 5 现在需要将该列表从中间分成两份 序列1 1 2 序列2 4 5 分开后在序列1的末尾添加一个元素 3 变成 1 2 3 问题复现 在编写下面的测试代码运行后 结果并不是想要的 p
  • 这可能是,Flutter 中最“强悍”的内存泄漏检测方案......

    近两年来 无论是创新型应用还是老牌旗舰型应用 都在或多或少地使用 Flutter 技术 然而 目前 Flutter 业务团队反馈最普遍的问题是 Flutter 内存占用过高 Flutter 内存占用过高原因比较复杂 需另开一个主题才能说清楚
  • git rebase和merge区别

    一 概述 merge和rebase 标题上的两个命令 merge和rebase都是用来合并分支的 这里不解释rebase命令 以及两个命令的原理 详细解释参考这里 下面的内容主要说的是两者在实际操作中的区别 1 1 什么是分支 分支就是便于
  • sqli-labs第十七关(post-报错注入)

    进入到十七关后发现这关有点不同 上面多了一行提示 密码重新设置 咱也不懂啥意思 在试了写常规注入的方法后 没有发现什么可以利用的点 于是决定去看看代码 虽然我不会php 先看这一部分有sql语句的 从users表中搜索出uname和psw
  • linux查找服务器大文件,查找Linux系统中的大文件和大目录方法

    查找大文件 eg 查找当前目录下大于10MB的文件 复制代码 代码如下 find type f size 10000k exec ls lh awk print 8 5 Sample output kde share apps akrega
  • Zmap的原理(回复包校验机制)

    Nmap使用的方法是发送请求然后监听回应 虽然请求可以同步进行 但为了记录每一个未回应请求需要大量开销 导致速度下降 而ZMap使用了不同的方法 它发生的是无状态请求 发送之后就忽略了 它不需要记录未回应请求的名单 而是在发送的数据包中编码
  • java中两个list对象取交集、差集

    在一般操作中 对于list集合取交集 差集 并集 比较简单 网上有很多例子 如 今天我们来说一下对于两个list集合该如何取交集与并集 如下两个集合 groupEntityList saveEntities groupEntityList是
  • JS正则判断多个连续相同字符

    var reg1 w 1 1 g 判断2个连续字符 var reg2 w 1 2 g 判断3个连续字符 var reg3 w 1 1 g 判断3个连续字符 var str aa 123AaAaAAA3 str match reg1 输出 a
  • SpringBoot学习笔记(一):先跑懂再说

    一 Spring Boot 入门 1 Spring Boot 简介 简化Spring应用开发的一个框架 整个Spring技术栈的一个大整合 J2EE开发的一站式解决方案 2 Spring Boot HelloWorld 一个功能 浏览器发送
  • 怎么样才能开期权账户

    为了保护投资者权益 上交所设定了50万的准入门槛 挡着了很多想入手期权交易的小伙伴 如果资金不够50万 那么有什么办法能零门槛参与期权呢 下文给大家介绍怎么样才能开期权账户的知识点 本文来自 期权酱 一 期权开户要什么条件 1 申请开户时保
  • android webview setwebviewclient,android – setWebViewClient和setWebChromeClient之间有什么区别?...

    从 source code Instance of WebViewClient that is the client callback private volatile WebViewClient mWebViewClient Instan
  • OpenCSV web下载csv文件demo

    OpenCSV web下载csv文件demo pom xml