利用POI读取Excel有效行数(含有内容)

利用POI读取Excel有效行数(含有内容),第1张

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()获取的值为空怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9772641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存