问题可能是由于使用了大量内存或循环次数过多导致的。以下是一个示例代码,可用于逐行读取大型Excel文件而不会卡住:
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;
import java.io.FileInputStream; import java.io.InputStream;
public class ExcelReader { public static void main(String[] args) { InputStream inp = null; Workbook wb = null; try { inp = new FileInputStream("large_file.xlsx"); wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt(0); for (Row row : sheet) { // 处理每一行 // ... } } catch (Exception e) { e.printStackTrace(); } finally { try { if (wb != null) { wb.close(); } if (inp != null) { inp.close(); } } catch (Exception e) { e.printStackTrace(); } } } }
通过逐行读取,可以避免在读取大文件时卡住。如果文件中有大量数据需要处理,可以考虑将数据分批读取。