java如何读取大xlsx文件呢?
下文笔者讲述xlsx文件的方法分享,如下所示
然后再对文件进行操作 例:
今天使用apache-POI中的XSSF读取xlsx文件
将出现
java.lang.OutOfMemoryError: Java heap space
将堆调大
-Xmx1024m 为 java 类增加了堆大小 仍然报错
String filename ="D:\\\\test.xlsx";
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
}
解决此类问题,我们只需将文件作为POIFSFileSystem对象然后再对文件进行操作 例:
String pass ="secret";
File file = new File("data/test.xlsx");
try (POIFSFileSystem fs = new POIFSFileSystem(file);
// wrap in org.apache.poi.poifs.filesystem.DocumentFactoryHelper.getDecryptedStream
InputStream in = DocumentFactoryHelper.getDecryptedStream(fs, pass);
OPCPackage pkg = OPCPackage.open(in))
{
XSSFReader reader = new XSSFReader(pkg);
StylesTable styles = reader.getStylesTable();
ReadOnlySharedStringsTable sharedStrings = new ReadOnlySharedStringsTable(pkg);
SheetContentsHandler f = new SheetContentsHandler() {
// ... your implementation of SheetContentsHandler interface ...
};
ContentHandler handler = new XSSFSheetXMLHandler(styles, sharedStrings, f, true);
XMLReader parser = XMLReaderFactory.createXMLReader();
parser.setContentHandler(handler);
parser.parse(new InputSource(reader.getSheetsData().next()));
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


