`
lion222
  • 浏览: 125179 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

opencsv java导入csv与xls文件总结

阅读更多

导入文件若为二进制格式的csv或xls文件需要用jxl.jar包来解析,

若文件为文本格式逗号分隔的csv文件则需要用opencsv.jar包来解析。

如何区分文件为二进制格式,简单的方法可以右键使用记事本打开,若为乱码则为二进制文件,这样的文件只能使用office的excel工具打开;而文本格式逗号分隔的csv文件使用记事本就可以打开。

下面为导入两种格式文件的代码示例:

 

1. 导入文本格式逗号分隔的csv文件

Java代码
  1. import au.com.bytecode.opencsv.CSVReader;  
import au.com.bytecode.opencsv.CSVReader;
Java代码
  1. public void importCsvFile() {   
  2.        
  3.      CSVReader csvReader = null;   
  4.        
  5.     try {   
  6.          csvReader = new CSVReader(new FileReader(importFile),',');//importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法   
  7.            
  8.         if(csvReader != null){   
  9.                
  10.             //first row is title, so past   
  11.              csvReader.readNext();   
  12.              String[] csvRow = null;//row   
  13.                
  14.             while ((csvRow = csvReader.readNext()) != null){   
  15.                    
  16.                 for (int i =0; i<csvRow.length; i++){   
  17.                        
  18.                      String temp = csvRow[i];   
  19.                     switch (i) {   
  20.                         case 0:   
  21.                             if(StringUtils.isNotEmpty(temp)){   
  22.                                  linkman.setLinkmanName(temp);   
  23.                              }   
  24.                             break;   
  25.                         case 1:   
  26.                             if(StringUtils.isNotEmpty(temp)){   
  27.                                  linkman.setLinkmanEmail(temp);   
  28.                              }   
  29.                             break;   
  30.                         default:   
  31.                             break;   
  32.                      }   
  33.                  }   
  34.                    
  35.                 //保存linkman到数据库   
  36.                 if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){   
  37.                      EmailLinkmanAPI.insertLinkman(linkman);   
  38.                  }   
  39.              }   
  40.          }   
  41.      } catch (Exception e) {   
  42.          e.printStackTrace();   
  43.      }   
  44.        
  45. }  
public void importCsvFile() {
 
 CSVReader csvReader = null;
 
 try {
  csvReader = new CSVReader(new FileReader(importFile),',');//importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法
  
  if(csvReader != null){
   
   //first row is title, so past
   csvReader.readNext();
   String[] csvRow = null;//row
   
   while ((csvRow = csvReader.readNext()) != null){
    
    for (int i =0; i<csvRow.length; i++){
     
     String temp = csvRow[i];
     switch (i) {
      case 0:
       if(StringUtils.isNotEmpty(temp)){
        linkman.setLinkmanName(temp);
       }
       break;
      case 1:
       if(StringUtils.isNotEmpty(temp)){
        linkman.setLinkmanEmail(temp);
       }
       break;
      default:
       break;
     }
    }
    
    //保存linkman到数据库
    if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){
     EmailLinkmanAPI.insertLinkman(linkman);
    }
   }
  }
 } catch (Exception e) {
  e.printStackTrace();
 } 
 
}

 

2. 二进制格式的csv或xls文件

 

Java代码
  1. import jxl.Sheet;   
  2. import jxl.Workbook;  
import jxl.Sheet;
import jxl.Workbook;
Java代码
  1. public void importXlsFile() {   
  2.        
  3.      Workbook book = null;   
  4.     try {   
  5.          book = Workbook.getWorkbook(importFile);//importFile为要导入的xls文件,或二进制的csv文件,提供getXX/setXX方法   
  6.      } catch (Exception e) {   
  7.          e.printStackTrace();   
  8.      }   
  9.        
  10.     if(book != null){   
  11.            
  12.         int sheetNo = book.getNumberOfSheets();   
  13.            
  14.         for(int i = 0; i < sheetNo; i++){   
  15.                
  16.              Sheet sheet=book.getSheet(i);   
  17.             int rowNum = sheet.getRows();   
  18.             int colNum = sheet.getColumns();   
  19.                
  20.             //first row is title, so past   
  21.             for(int r = 1; r < rowNum; r++){//行   
  22.                    
  23.                 for(int c = 0; c < colNum;c++){//列   
  24.                        
  25.                      String temp = sheet.getCell(c,r).getContents();   
  26.                     switch (c) {   
  27.                         case 0:   
  28.                             if(StringUtils.isNotEmpty(temp)){   
  29.                                  linkman.setLinkmanName(temp);   
  30.                              }   
  31.                             break;   
  32.                         case 1:   
  33.                             if(StringUtils.isNotEmpty(temp)){   
  34.                                  linkman.setLinkmanEmail(temp);   
  35.                              }   
  36.                             break;   
  37.                         default:   
  38.                             break;   
  39.                      }   
  40.                  }   
  41.                    
  42.                 //保存linkman到数据库   
  43.                 if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){   
  44.                      EmailLinkmanAPI.insertLinkman(linkman);   
  45.                  }   
  46.              }   
  47.          }   
  48.      }   
  49. }  
public void importXlsFile() {
 
 Workbook book = null;
 try {
  book = Workbook.getWorkbook(importFile);//importFile为要导入的xls文件,或二进制的csv文件,提供getXX/setXX方法
 } catch (Exception e) {
  e.printStackTrace();
 } 
 
 if(book != null){
  
  int sheetNo = book.getNumberOfSheets();
  
  for(int i = 0; i < sheetNo; i++){
   
   Sheet sheet=book.getSheet(i);
   int rowNum = sheet.getRows();
   int colNum = sheet.getColumns();
   
   //first row is title, so past
   for(int r = 1; r < rowNum; r++){//行
    
    for(int c = 0; c < colNum;c++){//列
     
     String temp = sheet.getCell(c,r).getContents();
     switch (c) {
      case 0:
       if(StringUtils.isNotEmpty(temp)){
        linkman.setLinkmanName(temp);
       }
       break;
      case 1:
       if(StringUtils.isNotEmpty(temp)){
        linkman.setLinkmanEmail(temp);
       }
       break;
      default:
       break;
     }
    }
    
    //保存linkman到数据库
    if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){
     EmailLinkmanAPI.insertLinkman(linkman);
    }
   }
  }
 }
}

附件为两种导入方法需要用到的jar包

opencsv-1.8.jar

jxl.jar

分享到:
评论

相关推荐

    java 导入Excel 文件,支持xls、xlsx、csv格式

    综上所述,Java导入Excel文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。

    java导入Excel需要的jar包

    "java导入Excel需要的jar包"这个话题,就是关于在Java项目中使用特定的jar包来处理Excel文件。下面将详细介绍相关的知识点。 1. **Apache POI**: Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的...

    java读取execl(xls,xlsx)

    除了Apache POI,还有其他的Java库可以读取Excel文件,如JExcelAPI(只支持.xls)、OpenCSV(主要用于CSV文件,但也能处理Excel)以及jOOQ的Excel模块等。 6. **实际应用** 在实际开发中,读取Excel文件常用于数据...

    java swing-会员管理系统窗体 GUI(CSV excel文件读取)

    读取CSV文件是将这些数据导入到系统中的关键步骤,可以使用Java的内置库如OpenCSV或者Apache Commons CSV来实现。 Excel文件,通常以.xlsx或.xls为扩展名,是由Microsoft Excel创建的电子表格文件,用于存储和处理...

    导入excl文件的所有jar包

    标题中的“导入excel文件的所有jar包”意味着这个压缩包包含了处理Excel文件所需的一系列Java库,也就是JAR(Java Archive)文件。在Java编程中,JAR文件是将多个类文件打包成一个单一的可执行文件,便于分发、部署...

    导入导出excel、cvs

    本示例主要探讨如何在程序中实现Excel(包括2003和2007版本)及CSV文件的导入与导出功能。以下将详细介绍相关知识点。 一、Excel文件处理 1. **Apache POI库**:对于Java开发者,Apache POI是一个非常流行的API,...

    java_Excel_import.rar_excel 导入_java 导入 excel

    - OpenCSV:虽然主要用于CSV文件,但在特定情况下也可以处理Excel。 - Apache POI的扩展库,如JFreeChart,可以用于创建复杂的图表。 总之,使用Java和Apache POI库可以高效地实现Excel数据的读取和导入。在实际...

    java 读写Excel组件

    除了Apache POI和JExcelAPI,还有其他一些库,如OpenCSV(主要用于CSV文件,但也可处理Excel),以及Spire.XLS Java库,它们提供了不同的特性和使用方式,可以根据项目需求选择合适的工具。 四、性能与选择 Apache...

    Java读取Excel文件jar包

    OpenCSV是一个轻量级的Java库,主要用于处理CSV(逗号分隔值)文件。CSV是一种简单但广泛应用的数据交换格式,它通常用于导入或导出表格数据。使用OpenCSV,你可以轻松地读取和写入CSV文件。例如,以下代码展示了...

    javaProject.rar

    通过Apache POI库读取和比较Excel数据,借助OpenCSV进行CSV文件操作,以及实现CSV与Excel的相互转换,这些都是Java开发中的重要技能。在实际应用中,要结合项目需求,灵活运用这些工具和方法,同时注意代码的健壮性...

    java操作Excel文件

    - OpenCSV:专注于CSV文件,适合简单的表格数据。 - Apache Commons CSV:Apache的另一个CSV处理库,功能更强大。 - JExcelApi的替代品:如Apache POI,因为JExcelApi不再积极维护。 通过掌握以上知识,开发者...

    利用JAVA操作EXCEL文件

    3. 其他库:除了Apache POI和JExcelAPI,还有一些其他库,如OpenCSV(主要用于CSV文件,但也可处理Excel),以及Spire.XLS等商业库,提供更丰富的功能和更好的性能。 4. 性能优化: - 使用SXSSF(Streaming ...

    excel导入大数据失败解决方法

    例如,Apache Commons CSV库和OpenCSV都是广泛使用的库,它们提供API来读取、写入CSV文件,可以方便地进行大数据导入和导出操作。下面是一个使用Apache Commons CSV库将Excel文件转换为CSV的基本步骤: 1. 添加依赖...

    java_jar包

    3. **使用第三方库**:由于Java标准库不包含内置的表格处理功能,因此通常会依赖于第三方库,如Apache POI(用于处理Microsoft Office格式,包括Excel)、OpenCSV(用于CSV文件)或JExcelApi(通用的电子表格处理库...

    Java 导入EXCEL

    - OpenCSV:虽然主要针对CSV文件,但也可以处理Excel文件的简单读写。 2. **使用Apache POI操作Excel**: - **读取Excel**:首先,你需要创建一个`HSSFWorkbook`对象(对于老版本的XLS文件)或`XSSFWorkbook`对象...

    java解析excel文件 2003 2007

    在Java编程环境中,解析Excel文件是一项常见的任务,无论是处理数据导入导出,还是进行数据分析,都需要用到这个功能。本文将详细讲解如何使用Java来解析2003和2007版本的Excel文件(包括.xls和.xlsx格式)。 Excel...

    java做大批量上传和下载

    ExcelUtils可能包含了读取、写入Excel的方法,比如使用Apache POI库来操作Excel文件,支持HSSFWorkbook(.xls)和XSSFWorkbook(.xlsx)格式,进行数据的导入导出。 2. **AbsImportFileService.java**:这是一个...

    java对Excel的操作

    在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景下。Java提供了多种库来支持对Excel的读写操作,使得开发者能够方便地进行Excel文件的处理。本篇文章将深入探讨...

    Excel导入工具类

    以上就是关于"Excel导入工具类"涉及的关键知识点,包括Excel文件格式、Java处理Excel的库、数据读取与处理方法以及实际应用案例。在实际开发中,我们需要根据项目需求选择合适的库,并进行适当优化,确保高效、稳定...

    java实现excel导出所需要的jar

    3. OpenCSV:虽然OpenCSV主要用于CSV文件处理,但在某些情况下,也可以将其用于简单的Excel数据导出。引入的JAR文件为: - opencsv-版本号.jar 4. SheetJS Java:基于SheetJS的Java实现,可以读写XLSX和XLSB格式,...

Global site tag (gtag.js) - Google Analytics