导入文件若为二进制格式的csv或xls文件需要用jxl.jar包来解析,
若文件为文本格式逗号分隔的csv文件则需要用opencsv.jar包来解析。
如何区分文件为二进制格式,简单的方法可以右键使用记事本打开,若为乱码则为二进制文件,这样的文件只能使用office的excel工具打开;而文本格式逗号分隔的csv文件使用记事本就可以打开。
下面为导入两种格式文件的代码示例:
1. 导入文本格式逗号分隔的csv文件
- import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVReader;
- public void importCsvFile() {
-
-
CSVReader csvReader = null;
-
-
try {
-
csvReader = new CSVReader(new FileReader(importFile),',');
-
-
if(csvReader != null){
-
-
- csvReader.readNext();
-
String[] csvRow = null;
-
-
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;
- }
- }
-
-
-
if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){
- EmailLinkmanAPI.insertLinkman(linkman);
- }
- }
- }
-
} catch (Exception e) {
- e.printStackTrace();
- }
-
- }
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文件
- import jxl.Sheet;
-
import jxl.Workbook;
import jxl.Sheet;
import jxl.Workbook;
- public void importXlsFile() {
-
-
Workbook book = null;
-
try {
-
book = Workbook.getWorkbook(importFile);
-
} 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();
-
-
-
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;
- }
- }
-
-
-
if(linkman.getLinkmanName() != null && linkman.getLinkmanEmail() != null){
- EmailLinkmanAPI.insertLinkman(linkman);
- }
- }
- }
- }
- }
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文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。
"java导入Excel需要的jar包"这个话题,就是关于在Java项目中使用特定的jar包来处理Excel文件。下面将详细介绍相关的知识点。 1. **Apache POI**: Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的...
除了Apache POI,还有其他的Java库可以读取Excel文件,如JExcelAPI(只支持.xls)、OpenCSV(主要用于CSV文件,但也能处理Excel)以及jOOQ的Excel模块等。 6. **实际应用** 在实际开发中,读取Excel文件常用于数据...
读取CSV文件是将这些数据导入到系统中的关键步骤,可以使用Java的内置库如OpenCSV或者Apache Commons CSV来实现。 Excel文件,通常以.xlsx或.xls为扩展名,是由Microsoft Excel创建的电子表格文件,用于存储和处理...
标题中的“导入excel文件的所有jar包”意味着这个压缩包包含了处理Excel文件所需的一系列Java库,也就是JAR(Java Archive)文件。在Java编程中,JAR文件是将多个类文件打包成一个单一的可执行文件,便于分发、部署...
本示例主要探讨如何在程序中实现Excel(包括2003和2007版本)及CSV文件的导入与导出功能。以下将详细介绍相关知识点。 一、Excel文件处理 1. **Apache POI库**:对于Java开发者,Apache POI是一个非常流行的API,...
- OpenCSV:虽然主要用于CSV文件,但在特定情况下也可以处理Excel。 - Apache POI的扩展库,如JFreeChart,可以用于创建复杂的图表。 总之,使用Java和Apache POI库可以高效地实现Excel数据的读取和导入。在实际...
除了Apache POI和JExcelAPI,还有其他一些库,如OpenCSV(主要用于CSV文件,但也可处理Excel),以及Spire.XLS Java库,它们提供了不同的特性和使用方式,可以根据项目需求选择合适的工具。 四、性能与选择 Apache...
OpenCSV是一个轻量级的Java库,主要用于处理CSV(逗号分隔值)文件。CSV是一种简单但广泛应用的数据交换格式,它通常用于导入或导出表格数据。使用OpenCSV,你可以轻松地读取和写入CSV文件。例如,以下代码展示了...
通过Apache POI库读取和比较Excel数据,借助OpenCSV进行CSV文件操作,以及实现CSV与Excel的相互转换,这些都是Java开发中的重要技能。在实际应用中,要结合项目需求,灵活运用这些工具和方法,同时注意代码的健壮性...
- OpenCSV:专注于CSV文件,适合简单的表格数据。 - Apache Commons CSV:Apache的另一个CSV处理库,功能更强大。 - JExcelApi的替代品:如Apache POI,因为JExcelApi不再积极维护。 通过掌握以上知识,开发者...
3. 其他库:除了Apache POI和JExcelAPI,还有一些其他库,如OpenCSV(主要用于CSV文件,但也可处理Excel),以及Spire.XLS等商业库,提供更丰富的功能和更好的性能。 4. 性能优化: - 使用SXSSF(Streaming ...
例如,Apache Commons CSV库和OpenCSV都是广泛使用的库,它们提供API来读取、写入CSV文件,可以方便地进行大数据导入和导出操作。下面是一个使用Apache Commons CSV库将Excel文件转换为CSV的基本步骤: 1. 添加依赖...
3. **使用第三方库**:由于Java标准库不包含内置的表格处理功能,因此通常会依赖于第三方库,如Apache POI(用于处理Microsoft Office格式,包括Excel)、OpenCSV(用于CSV文件)或JExcelApi(通用的电子表格处理库...
- OpenCSV:虽然主要针对CSV文件,但也可以处理Excel文件的简单读写。 2. **使用Apache POI操作Excel**: - **读取Excel**:首先,你需要创建一个`HSSFWorkbook`对象(对于老版本的XLS文件)或`XSSFWorkbook`对象...
在Java编程环境中,解析Excel文件是一项常见的任务,无论是处理数据导入导出,还是进行数据分析,都需要用到这个功能。本文将详细讲解如何使用Java来解析2003和2007版本的Excel文件(包括.xls和.xlsx格式)。 Excel...
ExcelUtils可能包含了读取、写入Excel的方法,比如使用Apache POI库来操作Excel文件,支持HSSFWorkbook(.xls)和XSSFWorkbook(.xlsx)格式,进行数据的导入导出。 2. **AbsImportFileService.java**:这是一个...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景下。Java提供了多种库来支持对Excel的读写操作,使得开发者能够方便地进行Excel文件的处理。本篇文章将深入探讨...
以上就是关于"Excel导入工具类"涉及的关键知识点,包括Excel文件格式、Java处理Excel的库、数据读取与处理方法以及实际应用案例。在实际开发中,我们需要根据项目需求选择合适的库,并进行适当优化,确保高效、稳定...
3. OpenCSV:虽然OpenCSV主要用于CSV文件处理,但在某些情况下,也可以将其用于简单的Excel数据导出。引入的JAR文件为: - opencsv-版本号.jar 4. SheetJS Java:基于SheetJS的Java实现,可以读写XLSX和XLSB格式,...