将数据导出Excel格式
2013-04-16 20:32
337 查看
最近做的一个项目涉及到导出功能,第一次写做下笔记,此方法用的是poi插件:
1.下载poi-3.6-20091214.jar加载到工程中
2.如果在后台写代码,一个小例子,代码如下:
3.由于要让数据有提示的打开或者保存,我们可以加一个jsp页面,然后访问这个页面直接弹出Excel打开框:
jsp页面:
一定要注意jsp代码里的最后三行:
OutputStream ot=response.getOutputStream();//这一步是要导入java.io.OutputStream
out.clear();
out = pageContext.pushBody();
丢了这三行在运行程序的时候后台会报错:
“严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response”
还有就是无论代码是在jsp页面写还是在后台写,这样在jsp页面里加上上面的三行代码就不会在后台报错了。
1.下载poi-3.6-20091214.jar加载到工程中
2.如果在后台写代码,一个小例子,代码如下:
package com.test; import java.io.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; public class WriteExcel { public void getExcel(String sheetName,OutputStream output) { HSSFWorkbook wb=new HSSFWorkbook(); HSSFSheet sheet1=wb.createSheet("sheet1"); HSSFRow row=sheet1.createRow((short)0); HSSFCell cell=row.createCell((short)0); cell.setCellValue(1); row.createCell((short)1).setCellValue(2); row.createCell((short)2).setCellValue(3); row.createCell((short)3).setCellValue("中文字符"); row=sheet1.createRow((short)1); cell=row.createCell((short)0); cell.setCellValue(1); row.createCell((short)1).setCellValue(2); row.createCell((short)2).setCellValue(3); row.createCell((short)3).setCellValue("中文字符"); try { output.flush(); wb.write(output); output.close(); } catch (IOException e) { e.printStackTrace(); System.out.println( "Output is closed "); } } }
3.由于要让数据有提示的打开或者保存,我们可以加一个jsp页面,然后访问这个页面直接弹出Excel打开框:
jsp页面:
<%@ page contentType="application/vnd.ms-excel" language="java" import="java.io.OutputStream,java.util.*,com.test.WriteExcel" pageEncoding="GBK"%><% response.setHeader("Content-Disposition","attachment;filename=test123.xls");//指定下载的文件名 response.setContentType("application/vnd.ms-excel"); WriteExcel we=new WriteExcel(); we.getExcel("111.xls",response.getOutputStream()); OutputStream ot=response.getOutputStream(); out.clear(); out = pageContext.pushBody(); %>
一定要注意jsp代码里的最后三行:
OutputStream ot=response.getOutputStream();//这一步是要导入java.io.OutputStream
out.clear();
out = pageContext.pushBody();
丢了这三行在运行程序的时候后台会报错:
“严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response”
还有就是无论代码是在jsp页面写还是在后台写,这样在jsp页面里加上上面的三行代码就不会在后台报错了。
相关文章推荐
- java-SpringMVC框架导出Excel格式数据
- .net解决数据导出excel时的格式问题
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
- Asp.net导出Excel/Csv文本格式数据的方法
- DELPHI如何将数据导出到指定格式的EXCEL模版
- 导出数据库查询数据至Word和Excel格式
- 数据导出成excel格式
- Java大批量导出数据,格式可以为xml或excel
- asp.net中导出到Excel的方法汇总及导出Excel/Csv格式数据最优方案(C#)
- Web页面的数据导出excel时的格式
- php导出excel格式数据
- C# Winform实现数据的导出为txt或者CSV或者excel格式
- jxl导出excel出现“文件错误,可能某些数据格式已丢失"
- python list格式数据excel导出
- js导出excel增加表头、mso-number-format定义数据格式
- winform 导出数据到指定文件夹 excel格式 但是有重复的文件就报错
- python实现数据导出到excel--普通格式
- 【导出EXCEL汇编】asp.net 将数据导出到excel中,并设置其格式
- Asp.Net 导出数据格式为Excel 数据的9种方案
- Web页面的数据导出excel时的格式问题(转)