SXSSFWorkbook填坑
(2019-09-09 11:26:26)| 分类: 程序猿 |
为什么模板中的数据获取不到?
当使用SXSSFWorkbook去加载一个已存在的Excel模板时,首先应该用XSSFWorkbook去获取它。
接下来要对这个Excel模板做大量行列操作时,如果用XSSF的create方法势必会导致内存溢出。于是我们要使用SXSSFWorkbook去完成这个操作。
但是当你噼里啪啦对SXSSFWorkbook进行了一顿操作时,你会忽然发现为什么SXSSFSheet.getRow(0) =
null???(懵逼不)
原因:
这是因为这些记录存在于XSSFWorkbook中,你需要用sxssfWorkbook.getXSSFWorkbook()方法去获取初始模板的行数据。
例子:
XSSFWorkbook workbook = new XSSFWorkbook("文件地址");
// 声明一个工作薄
SXSSFWorkbook sxssf = new SXSSFWorkbook(workbook, 1000);
XSSFWorkbook xssfWorkbook = sxssf.getXSSFWorkbook();
// 获取第一个sheet页
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
// 获取第一行的第一个单元格
Cell cell = xssfSheet.getRow(0).getCell(0);
// 获取第一个sheet页,使用SXSSFSheet
SXSSFSheet sheet = (SXSSFSheet) workbook.getSheetAt(0);

加载中…