需要添加javacsv.jar 支持
import static net.etongbao.common.utils.StringUtils.toStringWithOutNull;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* 解析CSV文件
*
* @author Fu Wei
*
*/
public class CsvUtils {
/** 编码 */
private static final String ENCODING = "UTF-8";
private static final Logger LOG = LoggerFactory.getLogger(CsvUtils.class);
/**
* csv格式读
*
* @param String
* @return List<Map<String, Object>>
* @throws CsvException
*/
public static List<Map<String, Object>> csvReader(String csvText) {
List<Map<String, Object>> csvList = new ArrayList<Map<String, Object>>();
try {
CsvReader reader = CsvReader.parse(csvText);
// 考虑到图片大小,设置最大长度不受限制
reader.setSafetySwitch(false);
String[] headers = null;
if (reader.readHeaders()) {
headers = reader.getHeaders();
while (reader.readRecord()) {
Map<String, Object> csvMap = new HashMap<String, Object>();
for (String head : headers) {
csvMap.put(head, reader.get(head));
}
csvList.add(csvMap);
}
LOG.debug("CsvUtils--->csvList:{}", csvList);
return csvList;
} else {
LOG.error("csv读取头失败");
}
} catch (UnsupportedEncodingException e) {
LOG.error("csv读取编码异常");
} catch (IOException e) {
LOG.error("csv读取IO异常", e);
}
return null;
}
/**
* csv写
*
* @param csvList
* @return
* @throws CsvException
*/
public static String csvWriter(List<Map<String, Object>> csvList) {
String csvText = null;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
CsvWriter writer = new CsvWriter(stream, ',', Charset.forName(ENCODING));
if (csvList != null && csvList.size() > 0) {
// 获取第一行map key,
Map<String, Object> headMap = csvList.get(0);
if (headMap != null && 0 <= headMap.size()) {
// 提取cvs列
Iterator<String> it = headMap.keySet().iterator();
try {
while (it.hasNext()) {
writer.write(it.next());
}
writer.endRecord();
boolean falg = false;
for (Map<String, Object> csvMap : csvList) {
if (falg) {
writer.endRecord();
}
for (Entry<String, Object> map : csvMap.entrySet()) {
String value = toStringWithOutNull(map.getValue());
writer.write(value);
}
falg = true;
}
writer.close();
csvText = stream.toString();
stream.close();
return csvText;
} catch (IOException e) {
LOG.warn("csv写入IO异常");
}
} else {
LOG.warn("拆解cvs数据为空");
}
} else {
LOG.warn("拆解cvs数据为空");
}
return null;
}
}
分享到:
相关推荐
//C# 读取Excel文件、C#读取xls文件、C#读取xlsx文件、C#读取csv文件 //C# 将xls文件转换为DataTable、C#将xlsx文件转换为DataTable //C#将csv文件转换为DataTable //C#将txt文件转换为DataTable(列与列之间空格隔...
之前项目中需要做导入功能,开始使用的excel但是支持大数据量时有内存溢出问题,后来使用了Csv格式进行导入,百度了一下Csv格式读取,前几页居然没有一个能用的,研究了两天,在网上的代码进行了修改,目前可以支持...
本作品主要是利用Labview将获取的信息存储进CSV格式文件中,CSV格式文件比较通用,方便以后的操作。
VC++6.0编译通过的读写CSV文件的代码及实例 在VC++6.0中编译通过,实测可用 通用性很不错 包含CSV读取的实例
pandas中还有读取表格的通用函数read_table。 接下来使用read_table功能作一下csv文件的读取尝试,使用此功能的时候需要指定文件中的内容分隔符。 查看csv文件的内容如下; In [10]: cat data.csv index,name,...
将DataTable中数据写入到CSV文件中,将CSV文件的数据读取到DataTable中,C# 编写通用类。
可支持csv txt excel 格式文件导入到sql server数据库中,表名我写设定好了,配置文件有数据库的配置信息。winform程序,为了公司的业务开发的小工具软件。先读取文件到dataset,然后再把记录导入到表中。网上的是用...
需要注意的是,read_csv()函数是通用的读取CSV文件的函数,可以读取以制表符或其他指定字符分隔的txt文件,只需要指定相应的分隔符即可。此外,也可以通过header参数指定是否有列名,以及通过names参数指定列名。 ...
前言 之前在入门系列的教程中,我们常用 d3.json() 函数来读取 json 格式的文件。json 格式很强大,但...但是表格软件都会支持生成csv 格式,它是一种非常基本的、通用的、简单的表格文件。本文将会说明在 D3 中怎么
通过java解析上传文件,判断文件类型(excel或者csv),将解析后的数据映射到javabean,从而可以进一步操作,入库或者增添数据
数据以通用的CSV(逗号分隔值)格式提供,确保了良好的兼容性,可以被广泛的数据分析和科学计算软件所读取。每一行代表了连续心电信号的一个采样点,通常包含时间戳和相应的电压值,使得用户能够重构出时间序列上的...
电子表格阅读器和(以后)支持通用格式的书写器:CSV(.csv),Excel(.xls,.xlsx),Open-office(.ods)和Google(在线)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'simple-spreadsheet' 然后执行: ...
直接源码开放,变量直接输出读取的数据,详细的注释方便修改。通用性强,简单易懂var s = new String(); //利用构造函数定义一个字符串变量 //s=1 //行号 if(doc.layers[0].kind==LayerKind.TEXT)s=doc.layers[0]....
TableIO提供了用于读取和写入CSV,TSV,Excel和其他表格格式内容的通用接口。 努吉特 提供核心功能,读写CSV,TSV文件。 PM> Install-Package TableIO 提供读写Excel(仅xlsx)文件的功能。 TableIO.ClosedXml...
csv文件的读取与生成 Lm.Common.DAL 通用数据访问层基类及公用类 Lm.Common.DAL.Sql 通用数据访问层针对sql server 2005及以上版本的实现 Lm.Common.Excel Excel2003的读取与生成 Lm.Common.Excel.OpenXml Excel...
csv文件的读取与生成 通用数据访问层示例 Lm.Common.DAL 通用数据访问层基类及公用类 Lm.Common.DAL.Sql 通用数据访问层针对sql server 2005及以上版本的实现 Lm.Common.Excel Excel2003的读取与生成 Lm....
另3:docsvs.asp可读取.xls得到.csv格式文本内容。 更新日志:20190625:改进读取方式,解决读取部分文件卡死问题。 20190625:纠正四种功能中的两种方式重复读取第一列问题。 用途举例 主要用途是过滤回车和...
Java多线程读取大文本文件并批量插入MongoDB的代码,文本文件,csv文件,可以结合POI改造使其支持excel。 适合做大量文本数据或日志文件入库的场景,大文本被拆分成多个线程处理,速度快。 批量插入MongoDB,存在则...
DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表,在.net项目中运用C#将DataTable转化为CSV文件,接下来通过本文给大家提供一个通用的方法,感兴趣的朋友可以参考下
文章目录15 python一维、二维数据格式化一维数据格式化二维数据格式化CSV格式与...CSV即以逗号分隔数据的一种方式,是一种国际通用的数据存储格式,文件一般以.csv结尾,其中每行是一个一维数据,采用逗号来分隔,并且