import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import net.sf.jxls.transformer.XLSTransformer; public final class JxlsUtil { private static final Logger LOGGER = LoggerFactory.getLogger(JxlsUtil.class); private static JxlsUtil jxlsUtil = null; private JxlsUtil() { } public static JxlsUtil getInstance() { if(jxlsUtil == null) { return new JxlsUtil(); } return jxlsUtil; } /** * 根据模板生成excel文件 * @param map * @param filePath * @param targetPath */ public void buildXLS(Map map, String filePath, String targetPath) { XLSTransformer transformer = new XLSTransformer(); try { InputStream is = new FileInputStream(filePath); HSSFWorkbook workBook = (HSSFWorkbook) transformer.transformXLS(is,map); workBook.setActiveSheet(0); OutputStream os = new FileOutputStream(targetPath); workBook.write(os); is.close(); os.flush(); } catch (FileNotFoundException e) { LOGGER.error("exception message: ",e); } catch (IOException e) { LOGGER.error("exception message: ",e); } catch (Exception e) { LOGGER.error("exception message: ",e); } } /** * 根据模板生成excel文件 * @param map * @param filePath * @param targetPath */ public void buildMultipleSheetsXLS(String filePath, String targetPath, List objects, List newSheetNames, String beanName, Map beanParams, int startSheetNum,MergedCallBack mergedCallBack) { XLSTransformer transformer = new XLSTransformer(); OutputStream os = null; InputStream is = null; try { is = new FileInputStream(filePath); HSSFWorkbook workBook = (HSSFWorkbook) transformer.transformMultipleSheetsList(is, objects, newSheetNames, beanName, beanParams, startSheetNum); FormulaEvaluator evaluator = workBook.getCreationHelper().createFormulaEvaluator(); for(int sheetNum = 0; sheetNum < workBook.getNumberOfSheets(); sheetNum++) { Sheet sheet = workBook.getSheetAt(sheetNum); for(Row r : sheet) { for(Cell c : r) { if(c.getCellType() == Cell.CELL_TYPE_FORMULA) { evaluator.evaluateFormulaCell(c); c.setCellType(Cell.CELL_TYPE_NUMERIC); } } } } if(mergedCallBack != null) { mergedCallBack.setMegerdCall(workBook); } os = new FileOutputStream(targetPath); workBook.write(os); os.flush(); } catch (FileNotFoundException e) { LOGGER.error("exception message: ",e); } catch (IOException e) { LOGGER.error("exception message: ",e); } catch (Exception e) { LOGGER.error("exception message: ",e); } finally { if(is != null) { try { is.close(); } catch (IOException e) { LOGGER.error("exception message: ",e); } } if(os != null) { try { os.close(); } catch (IOException e) { LOGGER.error("exception message: ",e); } } } } }
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public interface MergedCallBack { void setMegerdCall(HSSFWorkbook workBook); }
相关推荐
jxls利用模板生成excel文件, 非常方便
jxls教程 使用Java操作Excel,创建模板生成 jxls教程 使用Java操作Excel,创建模板生成
这是博客《官方给的 JXLS 读取 excel 文件的例子》配套示例,博客地址:http://blog.csdn.net/defonds/article/details/6733579。 下载后,将得到的所有依赖包导入项目即可运行。
用Jxls实现数据导入excel实例java代码
jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子jxls导出excel官方例子
jxls使用简单,只需定义一个excel模板,在excel中使用jx公式即可轻松实现,具体可查看项目,运行Application.java的main方法即可启动项目,访问htpp://localhost:8080/member/user/userExport即可导出数据生成excel...
使用jxls技术,自己创建Excel模板导出数据
用Jxls和Excel可以做出完美的报表,简洁高效,而且可以方便地处理Excel的数据,对于Java应用来说,实为上上之选!本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和...
jar包 jxls方式导出excel 包含所需的jar包 java中
jxls生成并导出excel所需jar包
jxls 实现例子 博文链接:https://tml808.iteye.com/blog/150766
SpringBoot(33) 整合JXLS实现Excel导入导出
java利用jxls操作excel模板文件
NULL 博文链接:https://siyuan-zhu.iteye.com/blog/2240423
用Jxls和Excel可以做出完美的报表,简洁高效,而且可以方便地处理Excel的数据,对于Java应用来说,实为上上之选!本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和...
使用JXLS+Excel模板制作灵活的excel导出
java导出Excel表格,jxls模板导出Excel,如何使用模板导出Excel
用Jxls和Excel可以做出完美的报表,简洁高效,而且可以方便地处理Excel的数据,对于Java应用来说,实为上上之选!本人从网上搜集资料,加上自己研究探索,现在完成了用Jxls导入导出Excel2003和Excel2007数据,读取和...
excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls excel-jxls