我正在尝试阅读一个大型excel文件。我查看了POI库,但我无法理解POI event Library
中的代码我只想读取excel文件,并在更改数据类型后将每个元素写入新文件,然后将其保存在数据库中。
我也尝试过sjxlsx.jar。但是在实现时,我发现jar并不包含所有类方法。
SimpleXLSXWorkbook workbook = new SimpleXLSXWorkbook(new File("C:/test.xlsx"));
HSSFWorkbook hsfWorkbook = new HSSFWorkbook();
org.apache.poi.ss.usermodel.Sheet hsfSheet = hsfWorkbook.createSheet();
Sheet sheetToRead = workbook.getSheet(0, false);
SheetRowReader reader = sheetToRead.newReader();
Cell[] row;
int rowPos = 0;
while ((row = reader.readRow()) != null) {
org.apache.poi.ss.usermodel.Row hfsRow = hsfSheet.createRow(rowPos);
int cellPos = 0;
for (Cell cell : row) {
if(cell != null){
org.apache.poi.ss.usermodel.Cell hfsCell = hfsRow.createCell(cellPos);
hfsCell.setCellType(org.apache.poi.ss.usermodel.Cell.CELL_TYPE_STRING);
hfsCell.setCellValue(cell.getValue());
}
cellPos++;
}
rowPos++;
}
return hsfSheet;
任何人都可以帮助我如何使用XSSF和SAX(事件API)来读取大型Excel文件吗?
答案 0 :(得分:-1)
内存不足错误通过添加-Xmx500m(例如)来解决。 JVM有一个默认的最大内存,实际上相对较低。
java -Xmx500m com.yourpackage.Application
此示例将其设置为500 meg。