在导出时可获得。
在导出excel时候需要导出多个sheet页,后面sheet页会覆盖前面sheet页的内容,即可在poi里获取Excel sheet页的数量。
好几年前的提问了,可能还有人会有相同的疑问。我刚好也找到了方法。其实不难
//建立一个workbook 实例
HSSFWorkbook wb = new HSSFWorkbook(poifs);
//通过workbook的getNumberOfSheets方法返回sheet总数就可以了
wbgetNumberOfSheets();
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么,传参都是一样的。一般创建sheet不用写循环吧,有几个sheet页不是也知道吗,何况你也说了,sheet的内容是不一样的。如果你循环创建的sheet,劝你创建的对象名也要不一样,要不让你怎么获取对应的sheet,怎么再创建row,cell
SXSSFWorkbook workbook = new SXSSFWorkbook(1000);
Sheet sheet = workbookcreateSheet("列表");
Sheet sheet1 = workbookcreateSheet("列表1");
sheetsetDefaultColumnWidth(15);
sheet1setDefaultColumnWidth(15);
Row header = sheetcreateRow(0);
Row header1 = sheet1createRow(0);
CellStyle style = workbookcreateCellStyle();
stylesetAlignment(CellStyleALIGN_CENTER);
Cell cell = headercreateCell(0);
cellsetCellStyle(style);
cellsetCellValue("aa");
这样写是没问题的
poi没用过,jxl的话先取到你要拷贝的sheet,然后是用创建一个新的WritableWorkbook,再用新创建的WritableWorkbook使用importSheet方法导入已有的sheet就可以了。
importSheet方法:
WritableSheet importSheet(String name, int index, Sheet s);
其中name是要创建的sheet的名称,index是sheet的编号,从0开始,s是要导入的sheet
以上就是关于poi获得xls页数全部的内容,包括:poi获得xls页数、如何用java的poi得到一张工作簿里sheet总数、利用POI读取Excel有效行数(含有内容)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)