Avatar
0
Tài Nguyễn Trung Beginner
Đọc file excel kích thước lớn
Em hiện tại đang phải đọc dữ liệu từ một file excel hơn 10k dòng ạ. Em có sử dụng apache poi để thực hiện đọc từng dòng dữ file. Nhưng thời gian đọc để lấy dữ liệu lại khá lâu ạ khoảng hơn 30p. Không biết có những cách nào để thực hiện lấy dữ liệu nhanh hơn không ạ? Em cảm ơn anh nhiều ạ!
  • Answer
java excel
Remain: 5
1 Answer
Avatar
monkey Beginner
monkey Beginner
File của em dung lượng là bao nhiêu MB nhỉ? Anh sử dụng code này:

<span>public</span> <span>static</span> <span>void</span> readXSSF(String filePath) <span>throws</span> IOException {
        <span>final</span> InputStream ExcelFileToRead = <span>new</span> FileInputStream(filePath);
        <span>final</span> XSSFWorkbook wb = <span>new</span> XSSFWorkbook(ExcelFileToRead);
        <span>final</span> Sheet sheet = wb.getSheetAt(<span>0</span>);
        Row row;
        Cell cell;
        <span>final</span> Iterator<Row> rows = sheet.rowIterator();
        <span>while</span> (rows.hasNext()) {
            row = rows.<span>next</span>();
            <span>final</span> Iterator<Cell> cells = row.cellIterator();
            <span>while</span> (cells.hasNext()) {
                cell = cells.<span>next</span>();
                <span>if</span> (cell.getCellType() == CellType.STRING) {
                    System.out.<span>print</span>(cell.getStringCellValue() + <span>'\t'</span>);
                } <span>else</span> <span>if</span> (cell.getCellType() == CellType.NUMERIC) {
                    System.out.<span>print</span>(cell.getNumericCellValue() + <span>"\t"</span>);
                }
            }
            System.out.<span>println</span>();
        }
        System.out.<span>println</span>(<span>"Already read all. "</span>);
    }

Đọc file này, thì thấy khá nhanh.

  • 1
  • Reply