// --------------------------------------------------------------------------------------------------------------------
// <summary>
// Defines the CSVFileReader type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace CSVFileReader
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
/// <summary>
/// Reads a CSV file.
/// </summary>
public class CSVFileReader
{
/// <summary>
/// The stream reader to process the CSV file reading.
/// </summary>
private StreamReader streamReader;
/// <summary>
/// Initializes a new instance of the <see cref="CSVFileReader"/> class.
/// </summary>
/// <param name="csvFilePath">
/// The CSV file path.
/// </param>
/// <param name="delimiter">
/// The delimiter.
/// </param>
public CSVFileReader(string csvFilePath, char delimiter)
{
this.CSVFilePath = csvFilePath;
this.Delimiter = delimiter;
}
/// <summary>
/// Finalizes an instance of the <see cref="CSVFileReader"/> class.
/// </summary>
~CSVFileReader()
{
this.Close();
}
/// <summary>
/// Gets the CSV file path being read.
/// </summary>
public string CSVFilePath { get; private set; }
/// <summary>
/// Gets the delimiter used within the CSV file.
/// </summary>
public char Delimiter { get; private set; }
/// <summary>
/// Read a line from the CSV file into a list of strings.
/// </summary>
/// <returns>
/// The list of string.
/// </returns>
public List<string> ReadLine()
{
this.Open();
var resultElements = new List<string>();
try
{
var currentLine = this.streamReader.ReadLine();
if (currentLine != null)
{
var currentLineElements = currentLine.Split(this.Delimiter);
resultElements.AddRange(currentLineElements);
}
}
catch (Exception)
{
this.Close();
}
return resultElements;
}
/// <summary>
/// Opens the stream reader.
/// </summary>
private void Open()
{
if (this.streamReader == null)
{
this.streamReader = new StreamReader(this.CSVFilePath, Encoding.GetEncoding(1252));
}
}
/// <summary>
/// Close the stream reader.
/// </summary>
private void Close()
{
if (this.streamReader == null)
{
return;
}
this.streamReader.Close();
this.streamReader.Dispose();
}
}
}
// --------------------------------------------------------------------------------------------------------------------
// <summary>
// Defines the Program type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace CSVFileReader
{
using System;
using System.Collections.Generic;
/// <summary>
/// The program.
/// </summary>
public static class Program
{
/// <summary>
/// The main method.
/// </summary>
public static void Main()
{
var foo = new CSVFileReader(@"C:\Users\Administrator\Desktop\Tmp.csv", ',');
List<string> line;
while ((line = foo.ReadLine()).Count != 0)
{
foreach (var item in line)
{
Console.Write(item + "|");
}
Console.WriteLine(string.Empty);
}
}
}
}
分享到:
相关推荐
C# SunnyUI图形界面库的引用学习,项目包
csharp-csv-reader 这个库是一系列经过单元测试,经过注释的CSV解析功能,我从2006年开始就一直在使用它。 包括针对大多数奇数CSV边缘情况的单元测试。 库支持不同的定界符,限定符和嵌入式换行符。 可以从数据表...
C#学习(十二)-CSV数据资源
C#解析csv,解决中文编码的一个代码例子
本文实例讲述了C#读取csv格式文件的方法。分享给大家供大家参考。具体实现方法如下: 一、CSV文件规则 1 开头是不留空,以行为单位。 2 可含或不含列名,含列名则居文件第一行。 3 一行数据不跨行,无空行。 4 以...
C#保存数据至*.csv进行显示,新建.csv文件并完成读写操作。
使用C#读取csv文件的实例源码_0520.rar
本文介绍了平面CSV文件和SQL Server之间的导入和导出功能。
详细给出C#导出CSV文件的代码,测试可用。
使用C#读取csv文件的实例源码
import-csv2 概述 这是用于导入CSV文件的PowerShell模块。 与内置的Import-Csv cmdlet相比,它具有以下优点: 灵活的解析选项:指定定界符/转义字符/引号字符,允许注释,跳过空行,忽略引号和修剪空格。 各种输出...
C#。net导出CSV格式的数据格式,为了方便大家,请参阅
C#读取csv文件,可以设置表头起始行跟正文起始行(为了某些特殊需求)。 读取csv生成一个datatable类返回。 缺点(“单元格”不支持换行)。
CSV读写,已解决中文编码问题,包含codesoft调用条码打印
运行环境:vs2010 Csv文件的读写,操作Csv文件,将dataGridView导出到CSV,加载CSV数据到DataGridView,包含对逗号的处理,内容中包含逗号也可以
C#读取csv文件的实例源码
最好用的读取csv文件代码,可以读取csv和EXCLE的文件
C#-WPF实现抽屉效果SplitView-炫酷漂亮的侧边菜单效果+MD主题重绘原生控件的美观效果-源码Demo下载
C#读取CSV EXCEL文件,比较好用