• 大小: 13.11MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: Java
  • 标签: excel  大文件  xlsx  

资源简介

文件里包含可以运行起来的项目,下载下来解压后,引入项目就可以运行看结果了。该代码可以处理100万数据量的excel文件,xlsx文件数据量太大,用普通的读法会报内存溢出错误,所以用官网提供的方法,一条一条的读取大excel文件,本例子从这点出发,组装excel里读取的单条数据为list,在根据需求操作list,即单条读取,单条操作,下载下来 后找到endRow(int rowNum)函数,在函数末尾有个注销的list数组打印,这个list即从excel里读取的当前行,列顺序同excel里的列顺序,直接操作list即可。

资源截图

代码片段和文件信息

package cn.com.poi.utils;
 
 
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;

import org.apache.poi.openxml4j.exceptions.Openxml4JException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackageAccess;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.util.CellAddress;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.SAXHelper;
import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable;
import org.apache.poi.xssf.eventusermodel.XSSFReader;
import org.apache.poi.xssf.eventusermodel.XSSFSheetxmlHandler;
import org.apache.poi.xssf.eventusermodel.XSSFSheetxmlHandler.SheetContentsHandler;
import org.apache.poi.xssf.extractor.XSSFEventbasedExcelExtractor;
import org.apache.poi.xssf.model.stylesTable;
import org.apache.poi.xssf.usermodel.XSSFComment;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.xmlReader;
 
/**
 * A rudimentary XLSX -> CSV processor modeled on the
 * POI sample program XLS2CSVmra from the package
 * org.apache.poi.hssf.eventusermodel.examples.
 * As with the HSSF version this tries to spot missing
 * rows and cells and output empty entries for them.
 * 


 * Data sheets are read using a SAX parser to keep the
 * memory footprint relatively small so this should be
 * able to read enormous workbooks.  The styles table and
 * the shared-string table must be kept in memory.  The
 * standard POI styles table class is used but a custom
 * (read-only) class is used for the shared string table
 * because the standard POI SharedStringsTable grows very
 * quickly with the number of unique strings.
 * 


 * For a more advanced implementation of SAX event parsing
 * of XLSX files see {@link XSSFEventbasedExcelExtractor}
 * and {@link XSSFSheetxmlHandler}. Note that for many cases
 * it may be possible to simply use those with a custom
 * {@link SheetContentsHandler} and no SAX code needed of
 * your own!
 */
public class XLSX2CSV {
    /**
     * Uses the XSSF Event SAX helpers to do most of the work
     * of parsing the Sheet xml and outputs the contents
     * as a (basic) CSV.
     */
    private class SheetConvert implements SheetContentsHandler {
        private boolean firstCellOfRow = false;
        private int currentRow = -1;
        private int currentCol = -1;
        private List lineArray = new ArrayList();
 
        private void outputMissingRows(int number) {
            for (int i = 0; i < number; i++) {
                for (int j = 0; j < minColumns; j++) {
                    output.append(‘‘);
                }
                output.append(‘\n‘);
            }
        }
 
        @Override
       


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1120  2018-07-06 16:33  testpoi\.classpath

     文件        383  2018-07-12 11:38  testpoi\.project

     文件        629  2018-07-06 16:32  testpoi\.settings\org.eclipse.jdt.core.prefs

     文件       3253  2018-07-12 11:40  testpoi\bin\cn\com\poi\utils\XLSX2CSV$SheetConvert.class

     文件       5611  2018-07-12 11:40  testpoi\bin\cn\com\poi\utils\XLSX2CSV.class

     文件     284184  2018-07-06 16:33  testpoi\lib\commons-codec-1.10.jar

     文件     751238  2018-07-06 16:33  testpoi\lib\commons-collections4-4.1.jar

     文件      61829  2018-07-06 16:33  testpoi\lib\commons-logging-1.2.jar

     文件      98365  2018-07-06 16:32  testpoi\lib\curvesapi-1.04.jar

     文件     314932  2018-07-06 16:33  testpoi\lib\junit-4.12.jar

     文件     489884  2018-07-06 16:33  testpoi\lib\log4j-1.2.17.jar

     文件    2679259  2018-07-06 16:32  testpoi\lib\poi-3.16.jar

     文件     369786  2018-07-06 16:32  testpoi\lib\poi-examples-3.16.jar

     文件      31218  2018-07-06 16:32  testpoi\lib\poi-excelant-3.16.jar

     文件    1433719  2018-07-06 16:32  testpoi\lib\poi-ooxml-3.16.jar

     文件    5871746  2018-07-06 16:32  testpoi\lib\poi-ooxml-schemas-3.16.jar

     文件    1384931  2018-07-06 16:32  testpoi\lib\poi-scratchpad-3.16.jar

     文件    2730866  2018-07-06 16:32  testpoi\lib\xmlbeans-2.6.0.jar

     文件       9160  2018-07-12 11:40  testpoi\src\cn\com\poi\utils\XLSX2CSV.java

     目录          0  2018-07-12 11:39  testpoi\bin\cn\com\poi\utils

     目录          0  2018-07-12 11:39  testpoi\src\cn\com\poi\utils

     目录          0  2018-07-12 11:39  testpoi\bin\cn\com\poi

     目录          0  2018-07-12 11:39  testpoi\src\cn\com\poi

     目录          0  2018-07-12 11:39  testpoi\bin\cn\com

     目录          0  2018-07-12 11:39  testpoi\src\cn\com

     目录          0  2018-07-12 11:38  testpoi\bin\cn

     目录          0  2018-07-12 11:38  testpoi\src\cn

     目录          0  2018-07-12 11:38  testpoi\.settings

     目录          0  2018-07-12 11:39  testpoi\bin

     目录          0  2018-07-12 11:38  testpoi\lib

............此处省略5个文件信息

评论

共有 条评论