C#操作CSV文件類實(shí)例
本文實(shí)例講述了C#操作CSV文件類。分享給大家供大家參考。具體分析如下:
這個(gè)C#類用于轉(zhuǎn)換DataTable為CSV文件、CSV文件轉(zhuǎn)換成DataTable,如果需要進(jìn)行CSV和DataTable之間進(jìn)行轉(zhuǎn)換,使用這個(gè)類非常合適。
using System.Data;
using System.IO;
namespace DotNet.Utilities
{
/// <summary>
/// CSV文件轉(zhuǎn)換類
/// </summary>
public static class CsvHelper
{
/// <summary>
/// 導(dǎo)出報(bào)表為Csv
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="strFilePath">物理路徑</param>
/// <param name="tableheader">表頭</param>
/// <param name="columname">字段標(biāo)題,逗號分隔</param>
public static bool dt2csv(DataTable dt, string strFilePath, string tableheader, string columname)
{
try
{
string strBufferLine = "";
StreamWriter strmWriterObj = new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);
strmWriterObj.WriteLine(tableheader);
strmWriterObj.WriteLine(columname);
for (int i = 0; i < dt.Rows.Count; i++)
{
strBufferLine = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j > 0)
strBufferLine += ",";
strBufferLine += dt.Rows[i][j].ToString();
}
strmWriterObj.WriteLine(strBufferLine);
}
strmWriterObj.Close();
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 將Csv讀入DataTable
/// </summary>
/// <param name="filePath">csv文件路徑</param>
/// <param name="n">表示第n行是字段title,第n+1行是記錄開始</param>
public static DataTable csv2dt(string filePath, int n, DataTable dt)
{
StreamReader reader = new StreamReader(filePath, System.Text.Encoding.UTF8, false);
int i = 0, m = 0;
reader.Peek();
while (reader.Peek() > 0)
{
m = m + 1;
string str = reader.ReadLine();
if (m >= n + 1)
{
string[] split = str.Split(',');
System.Data.DataRow dr = dt.NewRow();
for (i = 0; i < split.Length; i++)
{
dr[i] = split[i];
}
dt.Rows.Add(dr);
}
}
return dt;
}
}
}
希望本文所述對大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
NPOI實(shí)現(xiàn)兩級分組合并功能(示例講解)
下面小編就為大家分享一篇NPOI實(shí)現(xiàn)兩級分組合并功能的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
基于C#實(shí)現(xiàn)獲取Windows所有窗口句柄
在做錄屏或截屏操作時(shí),需要獲取當(dāng)前正在運(yùn)行中的桌面程序句柄,所以這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)獲取Windows所有窗口句柄,需要的可以參考下2023-12-12
C# Distinct和重寫IEqualityComparer時(shí)要知道的二三事
這篇文章主要給大家介紹了關(guān)于C# Distinct和重寫IEqualityComparer時(shí)要知道的二三事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
C#實(shí)現(xiàn)單例模式的6種方法小結(jié)
這篇文章主要介紹了C#實(shí)現(xiàn)單例模式的6種方法,C#中實(shí)現(xiàn)單例有很多種方法,本文將按順序介紹非線程安全、完全懶漢式、線程安全和低/高性能集中版本,需要的朋友可以參考下2022-09-09
分享WCF聊天程序--WCFChat實(shí)現(xiàn)代碼
無意中在一個(gè)國外的站點(diǎn)下到了一個(gè)利用WCF實(shí)現(xiàn)聊天的程序,作者是:Nikola Paljetak。研究了一下,自己做了測試和部分修改,感覺還不錯(cuò),分享給大家2015-11-11

