使用POI生成Excel
2012-11-12 08:25
381 查看
注意:本分非转载文章,只是为了不让在首页推荐,特地进行此设置。
通常需要让用户导出Excel的模板,一般可以先把模板保存到服务器,让用用户下载,对于不常变化的模板,还可以直接使用POI进行生成,下面就是如何使用POI生成。
通常需要让用户导出Excel的模板,一般可以先把模板保存到服务器,让用用户下载,对于不常变化的模板,还可以直接使用POI进行生成,下面就是如何使用POI生成。
1、对于表头,首先可以编写一个List,保存Excel模板的表头信息,如下:
/** * @说明 返回费用明细的表头字段 * @return */ public static List getCostDetailList(){ List list = new ArrayList(); list.add("CO对象名称"); list.add("订单号"); list.add("确定名称"); list.add("大区"); list.add("分公司"); list.add("成本要素名称"); list.add("确定成本要素"); list.add("费用类型"); list.add("CO范围货币值"); list.add("名称"); list.add("月份"); list.add("过帐日期"); list.add("参考凭证编号"); list.add("物料描述"); list.add("成本要素"); return list; }
2、然后使用POI生成Excel文件对象:
/** * 返回导入模板 费用报表 * @return */ @SuppressWarnings("unchecked") public HSSFWorkbook excelModelFybb(String type){ // 建立新HSSFWorkbook对象. HSSFWorkbook wb = new HSSFWorkbook(); // 建立新的sheet对象. HSSFSheet sheet = wb.createSheet("ExcelModel"); // 标头. HSSFRow row0 = sheet.createRow((short) 0); List list =new ArrayList(); //不同的type对应不同的报表模板 if(type.equals("1")) list = ExcelListUtil.getCostReportList(); else if(type.equals("2")) list = ExcelListUtil.getCostDetailList(); else if(type.equals("3")) list = ExcelListUtil.getInnerDinningList(); else if(type.equals("4")) list = ExcelListUtil.getInnerLodgingList(); else if(type.equals("5")) list = ExcelListUtil.getInnerSupperMarketList(); else if(type.equals("6")) list = ExcelListUtil.getInnerTravelList(); for(int i=0;i<list.size();i++){ String title = list.get(i).toString(); HSSFCell csCell00 = row0.createCell((short) i); // 设置cell编码解决中文高位字节截断. csCell00.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置中西文结合字符串. csCell00.setCellValue(title); } return wb; }
3、然后在Action或Servlet中输出这个Excel文件就可以了:
public ActionForward modelDownload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { salesReportImportManager = getSalesReportImportManager(); String type = request.getParameter("type"); // 得到HSSFWorkbook对象 HSSFWorkbook fileName = null; try { fileName = salesReportImportManager.excelModelFybb(type);//这是上面代码中的那个生成Excel的方法 response.setHeader("Pragma", ""); response.setHeader("Expires", ""); response.setHeader("Cache-Control", "Private"); // 开始EXCEL操作 response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", "attachment; filename=\"ModelDownLoad.xls\""); // 初始化输出流 OutputStream os = response.getOutputStream(); // 生成Excel文件 fileName.write(os); // 立即输出 response.flushBuffer(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; }
相关文章推荐
- 使用POI和dom4j来解析Excel生成Xml
- 使用POI生成Excel报表
- 使用poi分多级sheet生成excel
- 使用POI生成Excel文件及使用POI在EXCEL文件中插入图片的方法
- 使用POI为生成的excel添加文件属性
- Tomcat 容器 POI 生成 Excel 文件 可能会使用到 temp 临时文件夹
- 使用POI生成Excel文件,可以自动调整excel列宽遇到的问题及解决
- Servlet 中使用POI生成Excel
- 使用apache.poi生成Excel
- 使用POI生成Excel报表
- 使用POI生成Excel报表
- 使用Jakarta POI EXCEL API自动生成ORACLE数据字典的源代码
- 使用POI生成Excel文件,可以自动调整excel列宽
- Java 使用 poi生成 Excel的方法
- 使用ITEXT生成pdf文件,使用POI、jxl对excel文件进行读取
- Java使用poi生成Excel
- 使用POI生成Excel文件,可以自动调整excel列宽
- 流形式下载文件(结合POI生成excel使用)
- 使用POI生成Excel文件,可以自动调整excel列宽等
- 发现一段特别好的使用 POI生成Excel文档的 java代码