使用apache poi怎么实现导出excel文件

  介绍

使用apache poi怎么实现导出excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>代码如下:

包com.icourt.util;
  
  进口org.apache.commons.collections4.CollectionUtils;
  进口org.apache.poi.openxml4j.exceptions.InvalidFormatException;
  进口org.apache.poi.ss.usermodel。*;
  进口org.apache.poi.ss.util.CellRangeAddress;
  
  进口. io . *;
  进口java.util.ArrayList;
  进口java.util.HashMap;
  进口并不知道;
  进口java.util.Map;
  进口java.util.Map.Entry;
  进口java.util.regex.Matcher;
  进口java.util.regex.Pattern;/* *
  *描述:poi根据模板导出excel,根据excel坐标赋值,如(B1)
  */公开课ExcelExportUtil {//模板地图
  私人Map<字符串,Workbook>tempWorkbook=new HashMap<字符串,Workbook> ();//模板输入流地图
  私人Map<字符串,InputStream>tempStream=new HashMap<字符串,InputStream> ();/* *
  *功能:按模板向Excel中相应地方填充数据
  */公共空间writeData (String templateFilePath Map<字符串,Object>dataMap, int sheetNo)抛出IOException InvalidFormatException {
  如果(dataMap==null | | dataMap.isEmpty ()) {
  返回;
  }//读取模板
  工作簿wbModule=getTempWorkbook (templateFilePath);//数据填充的表
  表wsheet=wbModule.getSheetAt (sheetNo);
  
  (Entry<字符串,Object>条目:dataMap.entrySet ()) {
  字符串点=entry.getKey ();
  对象数据=https://www.yisu.com/zixun/entry.getValue ();
  
  TempCell细胞=getCell(点、数据wsheet);//指定坐标赋值
  setCell(细胞,wsheet);
  }//设置生成excel中公式自动计算
  wsheet.setForceFormulaRecalculation(真正的);
  }/* *
  *功能:按模板向Excel中列表填充数据。只支持列合并
  */公共空间writeDateList(字符串templateFilePath, String[], <整数,对象>映射列表datalist, int sheetNo)抛出IOException, InvalidFormatException {
  如果(头==null | |。长度<=0 | | CollectionUtils.isEmpty (datalist)) {
  返回;
  }//读取模板
  工作簿wbModule=getTempWorkbook (templateFilePath);//数据填充的表
  表wsheet=wbModule.getSheetAt (sheetNo);//列表数据模板单元
  List  (heads.length);
  (字符串:正面){
  TempCell TempCell=getCell (null, wsheet);//取得合并单元格位置1:表示不是合并单元格
  int pos=isMergedRegion (wsheet tempCell.getRow (), tempCell.getColumn ());
  如果(pos> 1) {
  CellRangeAddress范围=wsheet.getMergedRegion (pos);
  tempCell.setColumnSize (range.getLastColumn ()——range.getFirstColumn ());
  }
  tempCells.add (tempCell);
  }//赋值
  for (int i=0;我 dataMap=datalist.get(我);
  for (int j=0;j  1) {
  CellRangeAddress rangeAddress=mergeRegion(床单,tempCell.getRow (), tempCell.getRow (), tempCell.getColumn (), tempCell.getColumn tempCell.getColumnSize () + ());
  rangeAddress setRegionStyle (tempCell.getCellStyle(),表);
  }
  
  行克莱格=sheet.getRow (tempCell.getRow ());
  如果(克莱格==null) {
  copyRows (tempCell.getRow () - 1, tempCell.getRow () - 1, tempCell.getRow(),表);//复制上一行
  克莱格=sheet.getRow (tempCell.getRow ());
  }
  细胞cellIn=rowIn.getCell (tempCell.getColumn ());
  如果(cellIn==null) {
  cellIn=rowIn.createCell (tempCell.getColumn ());
  }//根据数据类型给细胞赋值
  如果(tempCell.getData()运算符字符串){
  cellIn.setCellValue((字符串)tempCell.getData ());
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

使用apache poi怎么实现导出excel文件