你的位置:首页 > Java教程

[Java教程]POI导入具有合并了单元格的Excel

java poi 读取有合并单元格的EXCEL文件 - 我要飞翔 - CSDN博客

poi获取合并单元格时,如果是遍历获取合并单元格的所有子单元格的值,office的excel都会有值,wps的excel只会第一个子单元格有值,其他子单元格都没值,即c...

用POI读取具有任意合并单元的excel数据 - 九重霄 - 博客园

2. 用POI读取具有任意合并单元的excel数据(4334) 3. jqueryValidation使用(1305...(); } return result; } /** * 获取合并单元格的值 * @param sheet ...

POI导入具有合并了单元格的Excel - 榴莲蛋炒饭 - 博客园

POI进行单行单行地导入的数据在网上有许多的文章,但是要导入一个具有合并单元格的excel貌似比较难找。刚好最近完成了这样的一个需求,要求导入具有合并...

poi读取excel,支持合并单元格 - 容我半世癫狂的博客 - CSDN博客

[1]; } /** * 读取Excel * 封装表格对象,返回一个Listgt;gt;类型的集合(合并单元格和非合并单元格分开存) * @param input 流对象 * @param path 导入表格...

求POI 3.1 实现读取带有合并单元格的excel - 开源中国社区

POI 3.1 实现读取带有合并单元格的excel。看官网上的版本历史还没有看到低版本的这个实现,有人做过可以帮忙 给一个实现方式么 Java 举报 分享 吴唯寒...

poi导入/导出Excel表格,合并单元格的读取和设置-CSDN下载

java 用模板导出excel,并且合并单元格 - Mr.ZD的专栏 Java-poi导入excel合并单元格 - Bronna的博客 复杂的POI导出Excel表格(多行表头、合并单元格) ...

java poi导出Excel表,合并单元格 - Michael_Joy的博客 - CSDN博客

参数并初始化带边框的表头(这样做可以避免因为合并单元格后有的单元格的边框显示...其实导出可以分两种,一种是直接将页面的数据导出... poi导出excel...

用POI读取具有任意合并单元的excel数据 - atzuge - 博客园

用POI读取具有任意合并单元的excel数据 import java.io.File; import...* 获取合并单元格的值 * @param sheet * @param row * @param ...

poi解析excel,读取合并列或者行的值 - - ITeye博客

用poi解析有合并单元格的excel ProjectExplainExcelUtil.java package .con.imports.project.util; import java.io.File; import java.io.FileI...

利用POI插件导入excel怎样读取合并行数据? - sunling_s..._CSDN博客

像这样的excel格式,我导入excel时,怎么去解析这个文件?如果利用正常的方式去读取单元格,只能读取合并航中的第一行的数据,其他行为空。所以必须要知道...

java导入Excle有合并单元格的怎么读取-CSDN论坛

⋅ java poi 读取有合并单元格的EXCEL文件 ⋅ Excel学习4_ java poi 读取有合并单元格的EXCEL文件 ⋅ 利用POI插件导入excel怎样读取合并行数据? ⋅ ...

java poi 怎么读取Excel中合并单元格的值,我读取合并单..._百度知道

1个回答 - 回答时间: 2017年9月15日 - 16人觉得有用

[]/** * 获取合并单元格的值 * @param sheet * @param row * @param column * @return */ public String getMergedRegionValue(Sheet sheet, int ...更多关于POI导入具有合并了单元格的Excel的问题gt;gt;

用POI读取具有任意合并单元的excel数据 - 阿里云

摘要: 本文讲的是用POI读取具有任意合并单元的excel数据, import java.io.File; import java.io.IOException; import org.apache.poi.openxml4j.excep...

Java poi导出excel功能最全实现_合并单元格、设置样式等_Any...

Java使用poi导出excel实现案例,输出excel表格,设置表格行高、列宽与excel单元格样式,合并单元格在单元格中画斜线,设置单元格样式与插入图片

java - 怎么用POI Excel 读取合并单元格的值? - SegmentFault 思否

如上图,需要读取excel中的“9月份计划” 但是这里是合并的单元格,请问 怎么读取合格单元格的值,有什么好的思路么

POI如何修改一个Excel的合并单元格的值(合并单元格原来有值的)?

poi获取合并单元格时,如果是遍历获取合并单元格的所有子单元格的值,office的excel都会有值,wps的excel只会第一个子单元格有值,其他子单元格都没值,即c...

POI 导出Excel合并相同单元格并居中 - 意境天南的日志 - 网易博客

POI 导出Excel合并相同单元格并居中,意境天南的网易博客,心无贪欲,净土则生,... //由于上面循环中合并的单元放在有下一次相同单元格的时候做的,所以最...

java通过apache poi导出excel报表(综合运用单元格合并,公式,颜色...

前段时间做了一个java web项目,其中用到了poi导出报表,于是写了点测试代码,包含单元格合并,文字对齐,单元格底色及边框颜色设置,公式运用等,有需要的可...

java用poi生成excel,相同的数据合并单元格,并导出,下载..._新浪博客

java用poi生成excel,相同的数据合并单元格,并导出,下载实现。转载 2016-08-04 15:58:50 一。创建一个excel工作薄,生成表头,并导入数据 // 声明一个工...

利用POI插件导入excel怎样读取合并行数据? - c语言程序..._红黑联盟

像这样的excel 26684;式,我导入excel时,怎么去解析这个文件?如果利用正常的方式去读取单元 26684;,只能读取合并行中的第一行的数据,其他行为空。所...2017深圳中秋赏月好去处有哪些?深圳中秋哪里赏月好?中秋节去深圳哪里旅游比较好?中秋节去深圳玩旅游景点推荐?三亚有什么特色小吃?三亚哪里有好吃的?深圳中秋节攻略?深圳中秋节旅游好去处?中秋去小梅沙赏月好玩吗?深圳小梅沙中秋节有什么活动?中秋节去小梅沙海洋世界有什么活动?深圳小梅沙海洋世界中秋节攻略?北京出发去长兴岛 旅游 北京出发去长兴岛 旅游 北京出发去长兴岛 旅游 北京出发去长兴岛 旅游 北京出发去长兴岛 旅游 北京出发去长兴岛 旅游 北京出发去朝鲜旅游 北京出发去朝鲜旅游 北京出发去朝鲜旅游 北京出发去朝鲜旅游 北京出发去朝鲜旅游 北京出发去朝鲜旅游 北京出发去赤道几内亚旅游 北京出发去赤道几内亚旅游 北京出发去赤道几内亚旅游 北京出发去赤道几内亚旅游 北京出发去赤道几内亚旅游 北京出发去赤道几内亚旅游 北京出发去崇明岛旅游 北京出发去崇明岛旅游 北京出发去崇明岛旅游 北京出发去崇明岛旅游 北京出发去崇明岛旅游 北京出发去崇明岛旅游

  POI进行单行单行地导入的数据在网上有许多的文章,但是要导入一个具有合并单元格的excel貌似比较难找。刚好最近完成了这样的一个需求,要求导入具有合并单元格的excel:

 1 /** 2   * 读取excel数据,调用这方法开始 3   * @param is 4   * @param indexNum 至少需要多少列数据 5  */ 6  public static List<Object[]> readExcelToObj(InputStream is,int indexNum) { 7  8   Workbook wb = null; 9   List<Object[]> objArrList = null;10   try {11    objArrList = new ArrayList<>();12    wb = WorkbookFactory.create(is);13    readExcel(wb, 0, 0, 0,objArrList,indexNum);14   } catch (InvalidFormatException e) {15    e.printStackTrace();16   } catch (IOException e) {17    e.printStackTrace();18   }19   return objArrList;20  }
 1 /** 2   * 读取excel文件 3   * @param wb 4   * @param sheetIndex sheet页下标:从0开始 5   * @param startReadLine 开始读取的行:从0开始 6   * @param tailLine 去除最后读取的行 7  */ 8  public static void readExcel(Workbook wb,int sheetIndex, int startReadLine, int tailLine, List<Object[]> objArrList, int indexNum) { 9   Sheet sheet = wb.getSheetAt(sheetIndex);10   Row row = null;11 12   for(int i=startReadLine; i<sheet.getLastRowNum()-tailLine+1; i++) {13    row = sheet.getRow(i);14    List<Object> objList = new ArrayList<>();15    for(int j = 0 ; j<row.getLastCellNum();j++) {16     //for(Cell c : row) {17     Cell c = row.getCell(j);18     if(c==null){19      objList.add("");20      continue;21     }22     boolean isMerge = isMergedRegion(sheet, i, c.getColumnIndex());23           //判断是否具有合并单元格24     if(isMerge) {25      String rs = getMergedRegionValue(sheet, row.getRowNum(), c.getColumnIndex());26      objList.add(rs);27     }else {28      objList.add(getCellValue(c));29     }30 31    }32    while(objList.size()<indexNum){33     objList.add("");34    }35    objArrList.add(objList.toArray());36   }37  }
 1 /** 2   * 获取合并单元格的值 3   * @param sheet 4   * @param row 5   * @param column 6   * @return 7  */ 8  public static String getMergedRegionValue(Sheet sheet ,int row , int column){ 9   int sheetMergeCount = sheet.getNumMergedRegions();10 11   for(int i = 0 ; i < sheetMergeCount ; i++){12    CellRangeAddress ca = sheet.getMergedRegion(i);13    int firstColumn = ca.getFirstColumn();14    int lastColumn = ca.getLastColumn();15    int firstRow = ca.getFirstRow();16    int lastRow = ca.getLastRow();17 18    if(row >= firstRow && row <= lastRow){19 20     if(column >= firstColumn && column <= lastColumn){21      Row fRow = sheet.getRow(firstRow);22      Cell fCell = fRow.getCell(firstColumn);23      return getCellValue(fCell) ;24     }25    }26   }27 28   return null ;29  }
 1 /** 2   * 判断指定的单元格是否是合并单元格 3   * @param sheet 4   * @param row 行下标 5   * @param column 列下标 6   * @return 7  */ 8  public static boolean isMergedRegion(Sheet sheet,int row ,int column) { 9   int sheetMergeCount = sheet.getNumMergedRegions();10   for (int i = 0; i < sheetMergeCount; i++) {11    CellRangeAddress range = sheet.getMergedRegion(i);12    int firstColumn = range.getFirstColumn();13    int lastColumn = range.getLastColumn();14    int firstRow = range.getFirstRow();15    int lastRow = range.getLastRow();16    if(row >= firstRow && row <= lastRow){17     if(column >= firstColumn && column <= lastColumn){18      return true;19     }20    }21   }22   return false;23  }
 1 /** 2   * 获取单元格的值 3   * @param cell 4   * @return 5  */ 6  public static String getCellValue(Cell cell){ 7  8   if(cell == null) return ""; 9 10   if(cell.getCellType() == Cell.CELL_TYPE_STRING){11 12    return cell.getStringCellValue();13 14   }else if(cell.getCellType() == Cell.CELL_TYPE_BOOLEAN){15 16    return String.valueOf(cell.getBooleanCellValue());17 18   }else if(cell.getCellType() == Cell.CELL_TYPE_FORMULA){19 20    return cell.getCellFormula() ;21 22   }else if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){23 24    return String.valueOf(cell.getNumericCellValue());25 26   }27   return "";28  }

  注意:这导入功能也适用于单行读取,直接调用 readExcelToObj() 方法即可;参数1:传入excel文件的输入流;参数2:指定你希望至少要读入多少列数据(比如传入个0,就代表:如果你有的行只有3列数据的话,那么获得的数组长度就只有3;如果你传入了10,那些只有3列的数据会自动填充空字符串给数组,使每个数组最小长度为10);