导出下载csv格式的表格(逗号分隔文件)的servlet代码,留待以后调用

来源:互联网 发布:filter java 编辑:程序博客网 时间:2024/06/06 17:28

导出并下载csv格式的表格(逗号分隔文件)

以导出销售榜单为例

package cn.estore.web.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.estore.domain.BankItem;/** * 下载 排行榜单 CSV格式 *  * @author seawind *  */public class ExportServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 1、获得session中排行榜单List<BankItem> banklist = (List<BankItem>) request.getSession().getAttribute("banklist");// ************设置csv文件下载头信息**************String fileName = "bank.csv";// <span style="font-family: Arial, Helvetica, sans-serif;">************</span><span style="font-family: Arial, Helvetica, sans-serif;">设置文件类型**************</span>response.setCharacterEncoding("gbk");response.setContentType(getServletContext().getMimeType(fileName));// **********设置以附件打开***********response.setHeader("Content-Disposition", "attachment;filename="+ fileName);                //~~~~~~~~~~~~~~~~~~~~~~~~~~~~核心代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 2、导出csv文件PrintWriter pw = response.getWriter();// 3、通过response输出流 输出csv文件pw.println("排名,编号,名称,价格,销售数量");for (int i = 0; i < banklist.size(); i++) {BankItem bankItem = banklist.get(i);pw.println((i + 1) + "," + bankItem.getId() + ","+ convert(bankItem.getName()) + "," + bankItem.getPrice()+ "," + bankItem.getNumber());}pw.close();}// 若输出信息含有特殊字符,处理csv 表格中特殊字符的方法public String convert(String value) {// 将value中" 换成""value = value.replace("\"", "\"\"");// 将回车换行符 换成换行符value = value.replace("\r\n", "\n");// 如果存在, 只要在value 两端加入 ""return "\"" + value + "\"";}                //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~以上为核心代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}


0 0
原创粉丝点击