首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

jxls 导出xls模版

2013-04-09 
jxls 导出xls模版。工具类。public class ExportExcelUtil {private MapString,Object beans new HashMa

jxls 导出xls模版。
工具类。

public class ExportExcelUtil {private Map<String,Object> beans = new HashMap<String,Object>();private String exportFileName = "export.xls";public void setBeans(String key,Object obj){//装载输入对象beans.put(key, obj);}public ExportExcelUtil() {//初始化日期格式化工具对象到beans里。//excel模版调用方式:${dateUtil.formatToDate(entity.checkDate)}// ${dateUtil.formatToDateTime(entity.checkDateTime)} beans.put("dateUtil", new DateUtil());}public void exportExcel(String fileName){try {Struts2Utils.getRequest().setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}String systemPath  = this.getClass().getResource("/").getPath();//模版文件路径String templateFileName = systemPath + "templates/"+fileName+".xls";//File outFile = new File(outFileName);    XLSTransformer transformer = new XLSTransformer();        try {        InputStream is = new BufferedInputStream(new FileInputStream(templateFileName));//        transformer.transformXLS(templateFileName, beans, outFileName);        //读取并解析模版文件,填充模版标记中对应的值        HSSFWorkbook workbook = (HSSFWorkbook) transformer.transformXLS(is, beans);        resetCellFormula(workbook);//设置输出环境信息-        Struts2Utils.getResponse().reset();//输出的xls文件名 格式 2013-04-01String outFileName = DateUtil.formatToDate(new Date())+new String(fileName.getBytes("gb2312"),"ISO8859-1");Struts2Utils.getResponse().setHeader("Content-Type","application/force-download");Struts2Utils.getResponse().setHeader("Content-Type","application/vnd.ms-excel");Struts2Utils.getResponse().setHeader("Content-Disposition", "attachment;success=true;filename="+outFileName+".xls"); //利用response获得流对象,写出excel文件OutputStream os = Struts2Utils.getResponse().getOutputStream();workbook.write(os);is.close();os.flush();os.close();} catch (ParsePropertyException e) {e.printStackTrace();} catch (InvalidFormatException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public String getExportFileName() {return exportFileName;}public void setExportFileName(String exportFileName) {this.exportFileName = exportFileName;}//自动解析单元格里的公式。public void resetCellFormula(HSSFWorkbook wb) { HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(wb);//获取工作簿集合int sheetNum = wb.getNumberOfSheets();//遍历工作簿for (int i = 0; i < sheetNum; i++) {HSSFSheet sheet = wb.getSheetAt(i);int rows = sheet.getLastRowNum() + 1;//获取总行数for (int j = 0; j < rows; j++) {HSSFRow row = sheet.getRow(j);if (row == null)continue;int cols = row.getLastCellNum();//获取最后一列for (int k = 0; k < cols; k++) {HSSFCell cell = row.getCell(k);if(cell!=null){//如果单元格是公式,则直接解析公式内容if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {cell.setCellFormula(cell.getCellFormula());cell=e.evaluateInCell(cell);}} else {continue;}}}}}


前台js调用。
window.location.href = url;

热点排行