poi导出数据
来源:互联网 发布:棉先生衣服怎么样 知乎 编辑:程序博客网 时间:2024/06/15 09:56
环境搭建
poi-3.9.jarweb项目
源码:
DownloadServlet.java
package com.ishou.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class DownloadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletOutputStream out = null; try { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("sheet1"); // 创建表格1 HSSFRow headRow = sheet.createRow(0); // 创建第一行 headRow.createCell(0).setCellValue("姓名"); // 设置第一行第一个单元格数据 headRow.createCell(1).setCellValue("性别");// 设置第二行第一个单元格数据 headRow.createCell(2).setCellValue("年龄");// 设置第三行第一个单元格数据 for (int i = 0; i < 3; i++) { // 设置数据 HSSFRow row = sheet.createRow(sheet.getLastRowNum()+1); row.createCell(0).setCellValue("朱古力"+i); row.createCell(1).setCellValue("男"+i); row.createCell(2).setCellValue(22+i); } String filename = "poi报表导出.xls"; // 中文文件名 下载无法识别,可借助Fileutils改进 String agent = request.getHeader("User-agent"); filename = FileUtils.encodeDownloadFilename(filename, agent); // 根据不同浏览器生成下载文件名 out = response.getOutputStream(); // response.setContentType(request.getServletContext().getMimeType(filename)); // 设置文件mime类型 response.setHeader("content-disposition", "attachment;filename="+filename); //设置响应头 workbook.write(out); //写出流 } catch (Exception e) { e.printStackTrace(); }finally{ if (out != null) { out.close(); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
FileUtils.java
package com.ishou.servlet;import java.io.IOException;import java.net.URLEncoder;import sun.misc.BASE64Encoder;public class FileUtils { /** * 下载文件时,针对不同浏览器,进行附件名的编码 * * @param filename * 下载文件名 * @param agent * 客户端浏览器版本 * @return 编码后的下载附件名 * */ public static String encodeDownloadFilename(String filename, String agent) throws IOException { if (agent.contains("Firefox")) { // 火狐浏览器 filename = "=?UTF-8?B?" + new BASE64Encoder().encode(filename.getBytes("utf-8")) + "?="; filename = filename.replaceAll("\r\n", ""); } else { // IE及其他浏览器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+"," "); } return filename; }}
下载结果:
表格结果:
阅读全文
0 0
- POI EXCEL 数据导出
- poi导出excel数据
- POI批量导出数据
- POI-数据导入导出
- POI-数据导入导出
- POI 大数据导出
- poi导出数据
- POI导出excle数据
- 使用POI导出MAP数据
- poi 大数据导出测试
- poi实现数据的导出
- poi导出excel (大数据)
- 利用poi-SXSSFWorkbook导出数据
- POI导出百万级别数据
- erp10--excel数据导出--poi
- poi-Excel导出数据实例
- Java POI Excel 数据导出
- POI:数据批量导出、按模板导出
- 宏一定要用大写
- OI中C++常数问题及其优化
- 字符串左旋
- 简明矩阵的还原
- c# 教程
- poi导出数据
- C++取得系统时间方法
- 慕课网学习项目之答答租车系统
- c语言三阶幻方问题(回溯)
- 原码, 反码, 补码 详解
- java 基础之数组各种操作
- 70-外传篇 1
- bzoj4917 [Lydsy六月月赛]Hash Killer IV
- Servlet+mysql实现分页技术