Servlet实现导出下载csv文件
工作上遇到的场景,需要将客户列表数据导出成csv文件。测试了一个最简单版本,记录一下。
订单实体类:
package entity; /**
* 订单信息实体
* Created by dylan-pc on 2017/8/17.
*/
public class Order {
private String orderNo;
private String orderStatus;
private String orderDt;
private String productName;
private double price; public Order(String orderNo, String orderStatus, String orderDt, String productName, double price) {
this.orderNo = orderNo;
this.orderStatus = orderStatus;
this.orderDt = orderDt;
this.productName = productName;
this.price = price;
} public String getOrderNo() {
return orderNo;
} public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
} public String getOrderStatus() {
return orderStatus;
} public void setOrderStatus(String orderStatus) {
this.orderStatus = orderStatus;
} public String getOrderDt() {
return orderDt;
} public void setOrderDt(String orderDt) {
this.orderDt = orderDt;
} public String getProductName() {
return productName;
} public void setProductName(String productName) {
this.productName = productName;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
}
}
导出订单Servlet
package servlet;
import entity.Order;
import util.CSVUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* Created by dylan-pc on 2017/8/26.
*/
@WebServlet(name = "exportOrderServlet", urlPatterns = {"/exportOrder"})
public class exportOrderServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置response
response.setContentType("application/x-download;charset=utf-8");
//生成样例数据
List<Order> orders = Arrays.asList(new Order("sa20170826001", "shipping", "2017/8/26", "罗西尼女表", 499),
new Order("sa20170826002", "submit", "2017/8/26", "耐克篮球鞋", 1099),
new Order("sa20170826001", "finish", "2017/8/26", "新百伦G500慢跑鞋", 234));
//设置文件名
SimpleDateFormat dtf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String curDateStr = dtf.format(new Date());
String fileName = "订单列表-" + curDateStr + ".csv";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
//获得打印流
PrintWriter pw = response.getWriter();
pw.println("订单号, 订单状态, 下单日期,商品名称,商品价格");
StringBuilder sb = new StringBuilder();
for (Order o : orders) {
sb.append(o.getOrderNo() + "," + o.getOrderStatus() + "," + o.getOrderDt() + "," + o.getProductName() + "," + Double.toString(o.getPrice()) + "\n");
}
pw.print(sb);
pw.close();
}
}
实现效果:
Servlet实现导出下载csv文件的更多相关文章
- 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码
利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码 2014-07-31 12:53 1047人阅读 评论(0) 收藏 ...
- java导出生成csv文件
首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...
- 淘宝助理导出的csv文件使用的是什么编码,您猜?
今天下午用Java读取从淘宝助理 V4.3 Beta1导出的csv文件,出现中文乱码情况. 一看就是文件编码引起的,不清楚淘宝助理导出的csv文件使用了什么编码,到百度搜索了一下,看到一些相关文章,但 ...
- R: 导入 csv 文件,导出到csv文件,;绘图后导出为图片、pdf等
################################################### 问题:导入 csv 文件 如何从csv文件中导入数据,?参数怎么设置?常用参数模板是啥? 解决方 ...
- 如何从sql server导出到csv文件
如何从sql server导出到csv文件,具体代码如下: private static void WriteHeader(SqlDataReader reader, TextWriter outpu ...
- oracle导出多CSV文件的靠谱的
oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从orac ...
- vue.js纯前端处理如何将后台返回来的csv数据导出成csv文件
需要实现一个下载csv文件的功能,但后台没有对这个下载文件进行处理,而是将csv数据传给前台而已,需要前台做一下处理. 这是按钮的代码: <a> <el-button size=&q ...
- response下载csv文件内容乱码问题
response下载csv文件内容乱码问题 解决办法:在输出流语句第一行输出 out.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF}); Se ...
- 108.生成和下载csv文件
生成CSV文件 有时候我们做的网站,需要将一些数据,生成一个csv文件返回浏览器,并且是作为附件的形式下载下来. 生成小的csv文件: 生成一个小的csv文件,我们用Python内置的csv模块来处理 ...
- 使用JavaScript下载csv文件
前端可以使用JavaScript在客户端下载包含页面数据的文件,这里以下载CSV格式文件为例,代码如下: function downloadData(data, filename, type) { v ...
随机推荐
- 【scikit-learn基础】--『回归模型评估』之偏差分析
模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力. 本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种偏差的分析. 1. **R² ** ...
- [转帖]Oracle进程中的 LOCAL=NO 和 LOCAL=YES
https://www.cnblogs.com/wjoyxt/p/3780860.html 我们在服务器上用sqlplus 连接数据库,在查看进程,会多出一条记录: oracle 16007 1600 ...
- [转帖]TIDB - 使用BR工具进行数据热备份与恢复
一.BR工具 BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复.BR 只支持在 TiDB v3.1 及以上版本 ...
- Docker 部署 Ceph的简单方法
https://zhuanlan.zhihu.com/p/390377674 学习一下. docker部署 部署的思路和网络架构和前面分布式是一样的,区别在于命令的形式. 在每个节点安装 docker ...
- docker hub arm64v8/postgres
arm64v8/postgres https://hub.docker.com/r/arm64v8/postgres By arm64v8 • Updated 4 days ago The Postg ...
- echarts轮训展示某个
//学校资产占比的配置 function schollAssets() { var myChart = window.$echarts.init( document.getElementById('s ...
- web端用户的输入都应该做如下限制
web端中,所有可以输入的地方.都应该做如下操作. 1=>不能够输入script关键字,如果用户输入了.进行提示.然后删除用户输入的值 (这样比较粗暴,不太友好) 2=>用户输入了含有sc ...
- 【K哥爬虫普法】不要沾边!涉案 7k 合判 6 年!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...
- 【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...
- 【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:加速乐加密 ...