`
baining97
  • 浏览: 103298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java导入csv与xls文件总结

阅读更多

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

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

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

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

 

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

import au.com.bytecode.opencsv.CSVReader;
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;
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包

 

  • jxl.jar (692.5 KB)
  • 下载次数: 248
分享到:
评论
2 楼 SYSGIS 2016-09-26  
学习了 
1 楼 iijjll 2013-10-21  
不错,很好的例子~

相关推荐

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

    java 导入Excel 文件,兼容Excel 2003(后缀名:xls)及 2007(后缀名:xlsx)的文件,同时还支持csv格式的文件

    03xls格式报表导出、07xlsx格式导出、csv格式报表导出工具类

    报表导出工具类支持xls、xlsx、csv格式,里面有测试方法,封装好的方法可以直接调用对应方法即可,如果报错请导入响应的jar包 亲测很好使

    xls_csv.java

    用java程序 批量将excel文件转成csv文件,excel的格式是xls的。需要导入jxl包,用的是jexcelapi_2_6_6,excel的格式是xls的.

    Aspose.Cells for Java 20.7

    Aspose.Cells for Java 支持多种电子表格格式,包括XLS, XLSX, CSV, TAB, HTML等。 Aspose.Cells for Java 提供了丰富的API,使得开发者可以轻松地实现以下功能: 电子表格处理:打开、编辑、保存和转换Excel电子...

    java8源码-common-insert:一个可以按规则快速批量生成测试数据并支持多种数据源类型的开发测试工具

    csv文件 xls文件 xlsx文件 非关系型数据库: elasticsearch mongoDB 关系型数据库 mysql 简单介绍 核心思想是将所有数据生成规则转化为sql语句然后执行insert语句。如果是mysql数据源则直接由mysql执行,如果是别的...

    Java Relations Notepad:免费的便携式跨平台多用户关系管理器。-开源

    支持将 DB 导出为 CSV、HTML、XLS 或 XML 以及从 CSV、XLS 或 XML 导入。 简单直观的 GUI - 图形用户界面。 在 Windows/Linux 中测试。 需要 Jre-1.8 - ...

    hive项目之微博ETL项目总结分析

    通过一定的java程序设计做数据解析、结构化、各自合并成一个文件即可方便load到hive中。 输出:(两张表,一个用户表,一个评论内容表) 将两个类别下各自对应的文件集,进行解析、结构化。 通过load语法,将数据...

    universal-java-matrix-package:Java库,用于稀疏和密集矩阵,线性代数,可视化和大数据

    通用Java矩阵包 Java库,用于稀疏和密集矩阵,线性代数,可视化和大数据 项目网站: 关于 ...TXT,CSV,PNG,JPG,HTML,XLS,XLSX,PDF,LaTeX,Matlab,MDB 免费和开源(LGPL) 快速开始 // cr

    Password Keeper + Generator:免费的便携式跨平台图形多用户密码管理器-开源

    支持将数据库导出到CSV,HTML,XLS或XML,并从CSV,XLS或XML导入。 简单直观的GUI-图形用户界面。 PKG使用加密安全随机生成器。 用Java Spring Framework开发。 在Windows / Linux中测试。 Need Jre-1.8-...

    KMeans-Implementation

    KMeans-实现 这是JAVA中KMeans聚类算法的简单实现。 尽管它仅用于学术目的并且是这个小项目的主要原因,但它也显示了以下一些基本用法: ... 此外,还有一个名为 KMeans-example.xls 的文件,其中包含将 kmeans

    JFlightLog-Pilot Log Book Flight Logbook-开源

    JFlightLog是Windows女士和其他人(它是Java)的免费图形飞行员日志。 另存为Excel XLS,PDF,CSV或TXT。 从其他日志程序或电子表格导入CSV。 直接打印条目。 自动创建图表以可视化飞行时间。

    sqldebug--通用数据库GUI

    数据可以导出为:TXT、CSV、HTML、RTF、XLS,而且还用鼠标支持选择一部分数据导出。还支持选择表导出成Access文件,方便携带数据。 很好用的数据库结构比较和数据比较 对同种数据库之间比较表结构不同,特别适合维护...

    sqldebug 2.4

    强大的数据导出功能 数据可以导出为:TXT、CSV、HTML、RTF、XLS,而且还用鼠标支持选择一部分数据导出。还支持选择表导出成Access文件,方便携带数据。 很好用的数据库结构比较和数据比较 对同种数据库之间比较表...

Global site tag (gtag.js) - Google Analytics