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

csv格式读取通用类

    博客分类:
  • java
 
阅读更多

需要添加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;
	}

}
 
分享到:
评论
1 楼 tjzx 2012-10-18  
import static net.etongbao.common.utils.StringUtils.toStringWithOutNull;
报错,不知使用什么包了

相关推荐

    读取Excel文件xls、xlsx、csv格式文件,读取txt文件

    //C# 读取Excel文件、C#读取xls文件、C#读取xlsx文件、C#读取csv文件 //C# 将xls文件转换为DataTable、C#将xlsx文件转换为DataTable //C#将csv文件转换为DataTable //C#将txt文件转换为DataTable(列与列之间空格隔...

    C#读取和保存Csv文件

    之前项目中需要做导入功能,开始使用的excel但是支持大数据量时有内存溢出问题,后来使用了Csv格式进行导入,百度了一下Csv格式读取,前几页居然没有一个能用的,研究了两天,在网上的代码进行了修改,目前可以支持...

    基于LabVIEW的CSV格式文件的写入

    本作品主要是利用Labview将获取的信息存储进CSV格式文件中,CSV格式文件比较通用,方便以后的操作。

    VC++6.0编译通过的读写CSV文件的代码及实例

    VC++6.0编译通过的读写CSV文件的代码及实例 在VC++6.0中编译通过,实测可用 通用性很不错 包含CSV读取的实例

    使用pandas read_table读取csv文件的方法

    pandas中还有读取表格的通用函数read_table。 接下来使用read_table功能作一下csv文件的读取尝试,使用此功能的时候需要指定文件中的内容分隔符。 查看csv文件的内容如下; In [10]: cat data.csv index,name,...

    DataTable与CSV文件互转

    将DataTable中数据写入到CSV文件中,将CSV文件的数据读取到DataTable中,C# 编写通用类。

    csv txt excel 格式文件导入到sql server(程序源码)

    可支持csv txt excel 格式文件导入到sql server数据库中,表名我写设定好了,配置文件有数据库的配置信息。winform程序,为了公司的业务开发的小工具软件。先读取文件到dataset,然后再把记录导入到表中。网上的是用...

    pandas读取txt文件详情步骤完整实现介绍.docx

    需要注意的是,read_csv()函数是通用的读取CSV文件的函数,可以读取以制表符或其他指定字符分隔的txt文件,只需要指定相应的分隔符即可。此外,也可以通过header参数指定是否有列名,以及通过names参数指定列名。 ...

    D3.js进阶系列之CSV表格文件的读取详解

    前言 之前在入门系列的教程中,我们常用 d3.json() 函数来读取 json 格式的文件。json 格式很强大,但...但是表格软件都会支持生成csv 格式,它是一种非常基本的、通用的、简单的表格文件。本文将会说明在 D3 中怎么

    文件上传,java解析excel和csv 转javabean

    通过java解析上传文件,判断文件类型(excel或者csv),将解析后的数据映射到javabean,从而可以进一步操作,入库或者增添数据

    心电采集数据100000个点(csv)

    数据以通用的CSV(逗号分隔值)格式提供,确保了良好的兼容性,可以被广泛的数据分析和科学计算软件所读取。每一行代表了连续心电信号的一个采样点,通常包含时间戳和相应的电压值,使得用户能够重构出时间序列上的...

    简单电子表格:简单电子表格是Ruby Gem阅读器,适用于常见电子表格格式:Excel(.xls,.xlsx),Open-office(.ods)和CSV(标准,excel,制表符分隔)

    电子表格阅读器和(以后)支持通用格式的书写器:CSV(.csv),Excel(.xls,.xlsx),Open-office(.ods)和Google(在线)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'simple-spreadsheet' 然后执行: ...

    读取Excel.jsx

    直接源码开放,变量直接输出读取的数据,详细的注释方便修改。通用性强,简单易懂var s = new String(); //利用构造函数定义一个字符串变量 //s=1 //行号 if(doc.layers[0].kind==LayerKind.TEXT)s=doc.layers[0]....

    TableIO:TableIO提供了用于读写CSV,Excel和其他表格格式内容的通用接口

    TableIO提供了用于读取和写入CSV,TSV,Excel和其他表格格式内容的通用接口。 努吉特 提供核心功能,读写CSV,TSV文件。 PM&gt; Install-Package TableIO 提供读写Excel(仅xlsx)文件的功能。 TableIO.ClosedXml...

    通用数据访问层DAL Excel 操作 权限管理 128b 条码生成

    csv文件的读取与生成 Lm.Common.DAL 通用数据访问层基类及公用类 Lm.Common.DAL.Sql 通用数据访问层针对sql server 2005及以上版本的实现 Lm.Common.Excel Excel2003的读取与生成 Lm.Common.Excel.OpenXml Excel...

    C#用户权限控制架构,可以控制到类

    csv文件的读取与生成 通用数据访问层示例 Lm.Common.DAL 通用数据访问层基类及公用类 Lm.Common.DAL.Sql 通用数据访问层针对sql server 2005及以上版本的实现 Lm.Common.Excel Excel2003的读取与生成 Lm....

    xls转txt等工具集 v1.2

     另3:docsvs.asp可读取.xls得到.csv格式文本内容。 更新日志:20190625:改进读取方式,解决读取部分文件卡死问题。 20190625:纠正四种功能中的两种方式重复读取第一列问题。 用途举例 主要用途是过滤回车和...

    Java多线程读取大文本文件并批量插入MongoDB的实战代码

    Java多线程读取大文本文件并批量插入MongoDB的代码,文本文件,csv文件,可以结合POI改造使其支持excel。 适合做大量文本数据或日志文件入库的场景,大文本被拆分成多个线程处理,速度快。 批量插入MongoDB,存在则...

    C#中将DataTable转换成CSV文件的方法

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表,在.net项目中运用C#将DataTable转化为CSV文件,接下来通过本文给大家提供一个通用的方法,感兴趣的朋友可以参考下

    15 python一维、二维数据格式化

    文章目录15 python一维、二维数据格式化一维数据格式化二维数据格式化CSV格式与...CSV即以逗号分隔数据的一种方式,是一种国际通用的数据存储格式,文件一般以.csv结尾,其中每行是一个一维数据,采用逗号来分隔,并且

Global site tag (gtag.js) - Google Analytics