写道
最近做一个小程序中间要求读取execel数据,数据量在w级以上,然而原来使用poi读取,1w左右poi还可以但是1200以上就挂了,原因是内存不足,所以换了jxl,及fastexcel就速度而言fastexcel较快,但fastexcel功能不过强大,相比之下
poi较好,但最终选择了jxl性能也不错的,但是数据量也是只读到了2.3w而已,再往上就又挂了,如果数据量再大就要求客户分割excel来插入数据了,自己感觉不爽,客户估计也快哭了,但不知道有没更好的办法,来解决大数据量问题!
下面简单的贴一些代码!希望大家指导
jxl代码
package com.reader;
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class Jxltest {
public static void main(String[] args) throws Exception {
String strPath="F:/12.xls";
int rowNum = 0;
String cellValue = "";
File file=new File(strPath);
Workbook wb = null;
//构造Workbook(工作薄)对象
wb = Workbook.getWorkbook(file);
if(wb!=null)
{
Sheet[] sheet = wb.getSheets();
if(sheet!=null){
//对每个工作表进行循环
for(int i=0;i<sheet.length;i++)
{
//得到当前工作表的行数
rowNum = sheet[i].getRows();
for(int j=0;j<rowNum;j++){
Cell[] cells = sheet[i].getRow(j);
if(cells != null && cells.length>0){
//获取单元格
for(int k=0;k<cells.length;k++){
cellValue = cells[k].getContents();
System.out.println(cellValue);
//单元格的值
}
}
}
}
}
}
}
}
fastexcel代码
package com.reader;
import java.io.File;
import edu.npu.fastexcel.FastExcel;
import edu.npu.fastexcel.Sheet;
import edu.npu.fastexcel.Workbook;
public class TestFastExcel {
public static void main(String[] args) throws Exception {
String strPath="F:/上海.xls";
Workbook workBook = FastExcel.createReadableWorkbook(new File(strPath));
workBook.open();
Sheet s = workBook.getSheet(0);
String[] row;
String cell;
//按照第一行及最后一行来取单元格
for (int i = s.getFirstRow(); i <= s.getLastRow(); i++) {
row = s.getRow(i);
for (int j = s.getFirstColumn(); j <= s.getLastColumn(); j++) {
cell = s.getCell(i, j);
System.out.println(cell);
}
}
workBook.close();
}
}
poi代码
public boolean readExcel(String filePath) throws IOException {
FileInputStream fis = new FileInputStream(filePath); // 根据excel文件路径创建文件流
POIFSFileSystem fs = new POIFSFileSystem(fis); // 利用poi读取excel文件流
HSSFWorkbook wb = new HSSFWorkbook(fs); // 读取excel工作簿
HSSFSheet sheet = wb.getSheetAt(0); // 读取excel的sheet,0表示读取第一个、1表示第二个.....
String account="";
// 获取sheet中总共有多少行数据sheet.getPhysicalNumberOfRows()
for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
HSSFRow row = sheet.getRow(i + 1); // 取出sheet中的某一行数据
if (row != null) {
// 获取该行中总共有多少列数据row.getLastCellNum()
for (int j = 0; j < row.getLastCellNum(); j++) {
HSSFCell cell = row.getCell((short) j); // 获取该行中的一个单元格对象
// 判断单元格数据类型,这个地方值得注意:当取某一行中的数据的时候,需要判断数据类型,否则会报错
// java.lang.NumberFormatException: You cannot get a string
// value from a numeric cell等等错误
if (cell==null) {
continue;
}
else {
String m=cell.getStringCellValue();
String mm=m.replace(",","");
}
}
}
}
//然后添加数据到数据库
}
分享到:
相关推荐
### Java读取Excel文件知识点详解 #### 一、引言 在日常开发工作中,经常需要处理Excel文件。Java作为一种广泛使用的编程语言,提供了多种库来读取Excel文件,其中较为常用的有Apache POI和JExcelApi等。本文将详细...
在Java中读写Excel文件是一项常见的任务,尤其是在数据处理、报表生成或数据分析等场景下。Apache POI是一个广泛使用的开源库,它允许开发者使用Java语言来处理Microsoft Office格式的文件,包括Excel(XLS和XLSX)...
在Java编程中,读取...以上就是使用Java读取Excel文件生成矩阵的基本步骤。实际开发中,你可能还需要处理更多细节,如异常处理、数据验证、优化性能等。希望这个介绍能帮助你理解这个过程,并在实际项目中灵活应用。
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
在Java编程中,读写Excel文件是一项常见的任务,特别是在数据处理、数据分析或报表生成的场景下。本篇文章将深入探讨如何使用Java进行Excel文件的读取与写入操作,主要聚焦于Apache POI库,这是一个广泛使用的开源...
2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection.json 2. 导入sql到数据库:other/excel.sql 3. idea导入...
在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...
总结来说,使用Java和Apache POI框架读取Excel文件的内容主要包括以下几个步骤: 1. 引入Apache POI依赖。 2. 创建`FileInputStream`,加载Excel文件到`Workbook`对象。 3. 从`Workbook`中获取`Sheet`对象。 4. 遍历...
总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。
总结来说,通过Java的Apache POI库,我们可以方便地读取Excel文件中的数据,结合文件I/O操作,可以实现在文件内容中替换键值对的功能。在实际应用中,根据项目需求,可能还需要考虑并发处理、多工作表操作、错误处理...
总之,Java中操作Excel文件是通过Apache POI库实现的,该库提供了丰富的API来读取、写入以及修改Excel文件。在"ExcellWriter.java"这个例子中,我们可以学习到如何使用这些API进行实际的文件操作。理解并掌握这些...
Java提供了多种库来处理Excel文件,其中一个广泛使用的库是jxl。这个库允许开发者读取Excel工作簿(Workbook)、工作表(Worksheet)以及单元格(Cell)的数据,并能方便地写入新的值。 在Java中,首先需要引入jxl...
在Java编程环境中,处理Excel文件是一项常见的任务,无论是读取数据进行分析,还是导出报表供用户下载。这里,我们将详细探讨如何使用Java来读取和导出Excel文件,主要涉及的技术包括Apache POI库和其他相关API的...
2. **Java中的Excel操作**:Java本身并不内置对Excel文件的直接支持,但可以通过第三方库如JXL(Java Excel API)来实现读写Excel文件的功能。JXL是一个开源的Java库,它提供了方便的API,使得开发者可以轻松地操作...
下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源的库。首先需要下载jxl.jar文件,并将其添加到项目的classpath中。然后,使用Workbook....
综上所述,JavaExcelAPI为Java开发者提供了一个强大的工具箱,极大地简化了对Excel文件的操作流程,无论是简单的数据读取还是复杂的报表生成,都能轻松应对。随着项目不断发展和完善,其应用范围还将进一步扩大。
Java读写文件-Excel
标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...