`
landmine
  • 浏览: 95041 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java操作读取excel文件值总结

    博客分类:
  • java
阅读更多
写道
最近做一个小程序中间要求读取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(",",""); 

} 
} 
} 
} 
//然后添加数据到数据库 

} 

 
0
0
分享到:
评论
1 楼 贝塔ZQ 2016-09-02  
操作excel文档,之前试过PageOffice插件,感觉不错

相关推荐

    java读取excel文件

    ### Java读取Excel文件知识点详解 #### 一、引言 在日常开发工作中,经常需要处理Excel文件。Java作为一种广泛使用的编程语言,提供了多种库来读取Excel文件,其中较为常用的有Apache POI和JExcelApi等。本文将详细...

    在Java中读写Excel文件

    在Java中读写Excel文件是一项常见的任务,尤其是在数据处理、报表生成或数据分析等场景下。Apache POI是一个广泛使用的开源库,它允许开发者使用Java语言来处理Microsoft Office格式的文件,包括Excel(XLS和XLSX)...

    java读取excel文件生成矩阵

    在Java编程中,读取...以上就是使用Java读取Excel文件生成矩阵的基本步骤。实际开发中,你可能还需要处理更多细节,如异常处理、数据验证、优化性能等。希望这个介绍能帮助你理解这个过程,并在实际项目中灵活应用。

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    java读写excel文件

    在Java编程中,读写Excel文件是一项常见的任务,特别是在数据处理、数据分析或报表生成的场景下。本篇文章将深入探讨如何使用Java进行Excel文件的读取与写入操作,主要聚焦于Apache POI库,这是一个广泛使用的开源...

    java解析Excel文件并把数据存入数据库和导出数据为excel文件SpringBoot代码示例

    2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection.json 2. 导入sql到数据库:other/excel.sql 3. idea导入...

    java 读取Excel文件中的内容

    在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...

    Java读取Excel文件的内容

    总结来说,使用Java和Apache POI框架读取Excel文件的内容主要包括以下几个步骤: 1. 引入Apache POI依赖。 2. 创建`FileInputStream`,加载Excel文件到`Workbook`对象。 3. 从`Workbook`中获取`Sheet`对象。 4. 遍历...

    完美解决java读取excel内存溢出问题.rar

    总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。

    读取excel值替换文件内容

    总结来说,通过Java的Apache POI库,我们可以方便地读取Excel文件中的数据,结合文件I/O操作,可以实现在文件内容中替换键值对的功能。在实际应用中,根据项目需求,可能还需要考虑并发处理、多工作表操作、错误处理...

    java中读取Excel例子

    总之,Java中操作Excel文件是通过Apache POI库实现的,该库提供了丰富的API来读取、写入以及修改Excel文件。在"ExcellWriter.java"这个例子中,我们可以学习到如何使用这些API进行实际的文件操作。理解并掌握这些...

    java 读取excel写入值

    Java提供了多种库来处理Excel文件,其中一个广泛使用的库是jxl。这个库允许开发者读取Excel工作簿(Workbook)、工作表(Worksheet)以及单元格(Cell)的数据,并能方便地写入新的值。 在Java中,首先需要引入jxl...

    java读取excel及导出excel文件

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是读取数据进行分析,还是导出报表供用户下载。这里,我们将详细探讨如何使用Java来读取和导出Excel文件,主要涉及的技术包括Apache POI库和其他相关API的...

    Excel文件读写java代码

    2. **Java中的Excel操作**:Java本身并不内置对Excel文件的直接支持,但可以通过第三方库如JXL(Java Excel API)来实现读写Excel文件的功能。JXL是一个开源的Java库,它提供了方便的API,使得开发者可以轻松地操作...

    利用java操作Excel文件

    下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源的库。首先需要下载jxl.jar文件,并将其添加到项目的classpath中。然后,使用Workbook....

    利用JAVA操作EXCEL文件.pdf

    综上所述,JavaExcelAPI为Java开发者提供了一个强大的工具箱,极大地简化了对Excel文件的操作流程,无论是简单的数据读取还是复杂的报表生成,都能轻松应对。随着项目不断发展和完善,其应用范围还将进一步扩大。

    Java读写文件(excel)

    Java读写文件-Excel

    java读取excel之xlsl超大文件

    标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...

Global site tag (gtag.js) - Google Analytics