public static void main(String[] args) {
Workbook wb = null;
try {
//如果是xls,使用HSSFWorkbook;如果是xlsx,使用XSSFWorkbook
wb = new HSSFWorkbook(new FileInputStream("G:\excel\testxls"));
} catch (Exception e) {
eprintStackTrace();
}
//获取第一个画布
Sheet sheet = wbgetSheetAt(0);
CellReference cellReference = new CellReference("A4");
boolean flag = false;
for (int i = cellReferencegetRow(); i <= sheetgetLastRowNum();) {
Row r = sheetgetRow(i);
if(r == null){
//如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动
sheetshiftRows(i+1, sheetgetLastRowNum(),-1);
continue;
}
flag = false;
for(Cell c : r){
if(cgetCellType() != CellCELL_TYPE_BLANK){
flag = true;
break;
}
}
if(flag){
i++;
continue;
}else{//如果是空白行(即可能没有数据,但是有一定格式)
if(i == sheetgetLastRowNum()){
//如果到了最后一行,直接将那一行remove掉
sheetremoveRow(r);
}else{
//如果还没到最后一行,则数据往上移一行
sheetshiftRows(i+1, sheetgetLastRowNum(),-1);
}
}
}
Systemoutprintln("有效行数为:"+(sheetgetLastRowNum()+1));
}
一张表多个sheet页的情况:
生成workbook:
XSSFWorkbook workBook = new XSSFWorkbook(new FileInputStream(filePath))
获取workbook的所有sheet页:
for (int i = 0; i < workBookgetNumberOfSheets(); i++) {
XSSFSheet sheet = workBookgetSheetAt(i);
}
读取每个sheet页的第一行:
XSSFRow row = sheetgetRow(0);
如果是是多个excel,则把路径放一个list里面,遍历读每个excel就好了
解决方法:可以在“poi” *** 作“Excel”时读取单元格(Cell),单元格中有内容则可以读取出单元格中的值了。
POI编程(java程序中输出指定格式的Excel表格)基础知识如下:
创建工作簿Workbook,Workbook wb = new HSSFWorkbook();
创建工作表Sheet:Workbook wb = new HSSFWorkbook();
Sheet sheet = wbcreateSheet(“工作表名”);
创建行Row:Workbook wb = new HSSFWorkbook();
Sheet sheet = wbcreateSheet(“工作表名”);
Row row = sheetcreateRow(0);//0 表示行的索引。
POI编程(java程序中输出指定格式的Excel表格)创建单元格“Cell”如下:
Workbook wb = new HSSFWorkbook();
Sheet sheet = wbcreateSheet(“工作表名”);
Row row = sheetcreateRow(0),//0 表示行的索引,从0开始;
Cell cell = rowcreateCell(0),//0 表示单元格的索引,从0开始。
得到所有的合并单元格 sourceSheetgetNumMergedRegions(); 得到某一个合并单元格 CellRangeAddress oldRange=sourceSheetgetMergedRegion(i); 起始行 oldRangegetFirstRow() ; 结束行oldRangegetLastRow() 起始列oldRangegetFirstColumn() 结束列oldRangegetLastColumn()
麻烦采纳,谢谢!
你应该先对行进行获取如选择0~4行:
sheetGroupRow(0,4)
再:sheetSetRowGroupCollapsed(0,true)
这样就会对选择的行进行折叠
以上就是关于利用POI读取Excel有效行数(含有内容)全部的内容,包括:利用POI读取Excel有效行数(含有内容)、想请教下,java poi怎么实现读取多个表格的第一列数据,然后写进一张新表里,麻烦了~、poi处理Excel数据,cell的getStringCellValue()获取的值为空怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)