java 读CSV 和 Excel
1、csv和excel读写对比
开发中经常遇到数据导入和导出功能,csv 和 excel是最常见的数据格式,本文比较了下csv和excel读写相同数据的效率:
测试数据格式一

用上面模板数据生成的测试:

耗时时间统计:

测试数据格式二

生成数据:

耗时统计:

相同格式相同行数对比:
- csv文件比excel文件稍大
- csv读取/写入比excel快
工具类可以看出:csv读写是以行为单位来实现的;excel读取inputstream是直接加载到内存的。
如果用以上excel工具类读写一般需求都可以应付,如果遇到大量数据的读写,使用inputstream加载到内存的方式可能就会出现OOM问题。
2、excel大量数据写
excel工具类里处理了大量写的问题(SXSSFWorkbook分片对excel进行写入,上例中的100w测试数据就是这么写入的):
/**
* 创建一个Workbook
* @param fileType
* @return
* @throws Exception
*/
private static Workbook createWorkBook(String fileType) throws IOException {
Workbook wb;
if (excel2003L.equals(fileType)) {
//2003-
wb = new HSSFWorkbook();
} else if (excel2007U.equals(fileType)) {
//2007+ 内存留存数据
wb = new SXSSFWorkbook(10000);
} else {
throw new IOException("解析的文件格式有误!");
}
return wb;
}
3、excel大量数据读
大量数据读取直接使用workbook加载会出现OOM异常,一个好的办法是分批读取,参考:excel大量数据读取
java 读CSV 和 Excel的更多相关文章
- Java 将CSV转为Excel
CSV(Comma Separated Values)文件是一种纯文本文件,包含用逗号分隔的数据,常用于将数据从一个应用程序导入或导出到另一个应用程序.通过将CSV文件转为EXCEL,可执行更多关于数 ...
- JAVA读、写EXCEL文件
採用jxl.jar包,网上下载,百度一下到出都是.希望能够帮助到大家. 接下来直接贴代码: <span style="font-size:18px;"> public ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- python#读csv,excel,json数据
#读csv,excel,json数据 with open('E:\\test\\xdd.csv','r') as f: for line in f.readlines(): print(line) i ...
- python 中文转码 Excel读csv
大家都知道Excel读csv用的是ascii编码,我认为,ascii没有中文,所以这里指的应该是utf-8. 我遇到的问题是这样的,unity项目只能用txt文件,有一堆数据表用txt的文档保存下来了 ...
- Java生成和操作Excel文件(转载)
Java生成和操作Excel文件 JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...
- Java生成和操作Excel文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- 10、借助POI实现Java生成并打印excel报表(1)
10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache PO ...
随机推荐
- NUC131演示如何通过PWM触发ADC。
今天我来讲讲PWM触发ADC的例程 /**************************************************************************** * @f ...
- 在create-react-app的脚手架里面使用scss
之前用vue-cli脚手架的时候,只需要引进sass需要的依赖包便可以引入scss,但是在create-react-app的时候,发现除了需要引入sass依赖,还需要进行配置: 不管用什么方法进行sa ...
- 报错程序包org.springframework.test.context不存在
在pom.xml文件中找到 加入了依赖,但是maven update 或者Reimport后 启动还是报错 最后使出绝招: 在maven仓库的位置 找到对应的文件夹 更奇怪了 发现明明有jar包啊! ...
- 谷歌Volley网络框架讲解——第一篇
自从公司新招了几个android工程师后,我清闲了些许.于是就可以有时间写写博客,研究一些没来的研究的东西. 今年的谷歌IO大会上,谷歌推出了自己的网络框架——Volley.不久前就听说了但是没有cl ...
- Delphi的保存文件对话框-TsaveDialog
TsaveDialog继承于TOpenDialog,只介绍以下几个内容: 1.TsaveDialog如何设定为保存的默认路径是当前程序所在的文件夹: 默认目录是当前程序所在目录应设置属性Initial ...
- web基础----->readonly与disabled的区别
readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,今天我们通过案例来学习一下. readonly和Disabled的区 ...
- 深入浅出Docker(二):Docker命令行探秘
1. Docker命令行 Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法.但是由于Docker技术的快速发展,此交互式教程已经无法满 ...
- Dropwizard简单入门
Dropwizard:一个简洁的RESTful Web框架 Dropwizard跨越了开发库与框架的界限,旨在为Web应用所需的功能提供高性能.可靠的实现.Dropwizard将这些功能抽象为可重用的 ...
- scss的安装使用
Ruby的安装 如果是Window系统,请打开:http://rubyinstaller.org/downloads/ ,下载当前稳定版本的exe文件.界面如下所示: Step(2): 接下来,在系统 ...
- URL上的中文编码
参考:http://www.chinaz.com/web/2013/0226/293639.shtml 一 URL上拼接中文会进行编码 在URL上拼接中文时,比如www.abc.com?season= ...