java如何读取大xlsx文件呢?

重生 Java经验 发布时间:2024-02-28 21:21:11 阅读数:1529 1
下文笔者讲述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()));
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202402/17091265268057.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者