java 在线生成excel并预览和下载

在日常开发中我们经常会需要导出excel之类的功能,现总结两种生成包的使用,不用在服务端生成,十分方便哦。
一、POI包的使用
1. 先必须要导入包
poi-3.5-beta4-20081128.jar poi的核心架包
poi-contrib-3.5-beta4-20081128.jar 可选
poi-ooxml-3.5-beta4-20081128.jar 可选
poi-scratchpad-3.5-beta4-20081128.jar 可选
2.创建一个html文件 index.html
excel测试
3.创建一个servlet(poiservlet)
package servlet; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import service.poiservice; /** * Servlet implementation class poiservlet */ public class poiservlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + new String("陈杰.xls".getBytes("gbk"),"iso8859-1")); //response. poiservice excel=new poiservice(); excel.exportExcel("user",response.getOutputStream()); } }
4.创建service (poiservice)
package service; import java.io.IOException; import java.io.OutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class poiservice { /** * 生excel * @param name 名字 * @param out 输出 */ public void exportExcel(String name, OutputStream out) { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(name); HSSFRow row=sheet.createRow(0); HSSFCell cell=row.createCell((short)0); cell.setCellValue("姓名"); cell=row.createCell((short)1); cell.setCellValue("性别"); row=sheet.createRow(1); cell=row.createCell((short)0); cell.setCellValue("陈杰"); cell=row.createCell((short)1); cell.setCellValue("22"); row=sheet.createRow(2); cell=row.createCell((short)0); cell.setCellValue("张三"); cell=row.createCell((short)1); cell.setCellValue("25"); try { wb.write(out); } catch (IOException e) { e.printStackTrace(); } } }
二、JXL包的使用
1.导入包
jxl.jar --核心包
2.html poi中已经创建,不再重复
3.servlet(jxlservlet和poi的一样,不再重复)
4.service(jxservice)
package service; import java.io.FileOutputStream; import java.io.OutputStream; import jxl.*; import jxl.write.*; import jxl.write.WritableSheet; public class jxlservice { public void exportExcel(String name,OutputStream os){ try{ /* 文件流 FileOutputStream fOut = new FileOutputStream("D://1.xls"); //wordbook.write(fOut); //把响应的Excel工作薄存盘 fOut.flush(); */ WritableWorkbook wwb=Workbook.createWorkbook(os); //一个是工作表的名称,另一个是工作表在工作薄中的位置 WritableSheet ws=wwb.createSheet(name,0); ws.addCell(new Label(0,1,"姓名")); ws.addCell(new Label(1,1,"年龄")); ws.addCell(new Label(0,2,"陈杰")); ws.addCell(new Label(1,2,"20")); ws.addCell(new Label(0,3,"张三")); ws.addCell(new Label(1,3,"20")); wwb.write(); wwb.close(); }catch(Exception e){ System.out.println("JXLEXcel.exportExcel()"+e.getMessage()); } } }
创建完毕,让我来见证一下奇迹吧:
java 在线生成excel并预览和下载
java 在线生成excel并预览和下载
OK创建完毕,喜欢大家给提点意见!!!
源码下载地址:http://download.csdn.net/source/3420193
Tags: 

延伸阅读

最新评论

发表评论