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())); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。