导出到csv 文件(逗号分隔文件)不用poi 导出文件
来源:互联网 发布:淘宝网手提包女小包 编辑:程序博客网 时间:2024/06/10 05:35
csv 文件的注意事项: 以逗号分隔; 如果内容中已经存在了逗号,如果内容中已经存在了逗号; 对 其内容进行" 张,三" 这样进行两端加双引号转意思;
如果 数据原来就存在" 那么在 " 前面加上一个" 转义也就是"" 这样; 如 你"好 会转义为 你"" 好;
// response.setCharacterEncoding("gbk");
import cn.itcast.estore.domain.Orderitem;
/**
* 导出榜单
*
* @author seawind
*
*/
public class ExportRankServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 需要榜单数据 ---- 从ServletContext 中获得榜单数据
List<Orderitem> rank = (List<Orderitem>) getServletContext()
.getAttribute("rank");
// 文件下载功能 1 先设置两个头信息;
// 设置文件类型 Content-Type (day20里面有) getServletContext().getMimeType("rank.csv")获取改文件名的contenttype;
response.setContentType(getServletContext().getMimeType("rank.csv"));
// 以附件形式下载 Content-Disposition --- 附件名中文
Date date = new Date(System.currentTimeMillis());// 构造java.sql.Date 当前时间
String fileName = "estore商城销售排行榜_" + date + ".csv";
// 设置附件中文名
String agent = request.getHeader("user-agent");
if (agent.contains("MSIE")) {
// IE --- URL编码
fileName = URLEncoder.encode(fileName, "utf-8");
} else if (agent.contains("Mozilla")) {
// 火狐
BASE64Encoder base64Encoder = new BASE64Encoder();
fileName = "=?UTF-8?B?"
+ new String(base64Encoder.encode(fileName
.getBytes("UTF-8"))) + "?=";
}
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName);
//--------------以上为设置头信息 ; -----------------
response.setCharacterEncoding("gbk");
// 文件下载
PrintWriter out = response.getWriter();
// 先写表头
out.println("排名,商品编号,名称,单价,销售数量");
// 遍历榜单数据
for (int i = 0; i < rank.size(); i++) {
Orderitem orderitem = rank.get(i);
// 输出csv数据时,对商品名称 ,进行特殊处理 --- 转义 ,和" 因为这里只是productname可能含有, 或者
out.println((i + 1) + "," + orderitem.getProduct().getId() + ","
+ convert(orderitem.getProduct().getName()) + ","
+ orderitem.getProduct().getPrice() + ","
+ orderitem.getBuynum());
}
out.flush();
}
// 转义 商品名称中 , 和 "
private String convert(String name) {
// 如果name 中存在 " 转成 ""
name = name.replace("\"", "\"\""); // 一个 " 转换为 "" \ 为转义符号
// 如果包含,返回 name 两端 添加 ""
return "\"" + name + "\"";
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
- 导出到csv 文件(逗号分隔文件)不用poi 导出文件
- Mysql导出逗号分隔的csv文件
- csv文件导出内容有逗号
- CSV逗号分隔值文件
- asp.net导出CSV逗号分隔值文件数字自动识别问题
- 导出下载csv格式的表格(逗号分隔文件)的servlet代码,留待以后调用
- 导出数据到CSV文件
- POI导出excle,文件导出到本地
- 用csv格式的文件代替poi导出xls文件
- CSV逗号分隔符文件解析
- csv文件导出
- php导出csv文件
- PHP导出CSV文件
- mysql导出csv文件
- java导出CSV文件
- php导出CSV文件
- C# 导出CSV文件
- mysql 导出csv文件
- 与其他Apps进行交互 [ Lesson 1 - 启动到另外一个app ]
- C++检测内存池漏(vs2008)
- 【Linux基础】域名、主机名与IP地址转换
- 深入探讨 java.lang.ref 包之垃圾回收
- 单独编译android模块的方法
- 导出到csv 文件(逗号分隔文件)不用poi 导出文件
- 使用STAF/STAX启动VMWare镜像
- informix 把数据从一个表倒到另外一个表中
- 布鲁斯·塔克曼(Bruce Tuckman)的团队发展阶段模型
- 曝卡马乔国足主力检讨原文
- centos下增加swap分区,swap文件也不错
- Android开发项目名称文件夹报错,但是根目录不报错问题解决方案总结
- cocos2d-x多分布率适配(iphone5、ipad、android)
- ubuntu12.04 nomachine remote desktop by FREENX