日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#导入导出.CSV文件

發布時間:2023/12/4 C# 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#导入导出.CSV文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎您成為我的讀者,希望這篇文章能給你一些幫助。

前言

大家好,我是阿輝。

今天和大家一起來看看,C#在處理流文件時,我們最常用的導出Excel文件是如何操作的。

在日常的業務編碼過程中,很多時候需求就要求導出Office能打開的表格文件。我們一般的做法是使用Office組件的幫助,或者更優秀一點的是使用NPOI組件來導出(擺脫其Office組件的限制)。但是這兩種導出組件都有或多或少的弊端。

比如NPOI軟件,當數據量過大超過60W的時候,在組件內部會出現溢出問題。目前還無解,只能換一個別的組件或者對導出的數據進行限制。

那么我們有沒有別的辦法能導出Office能打開的文件呢,此時我們的流文件.csv格式就上場了。

.csv是一種逗號分隔值文件格式,其文件以純文本形式存儲表格數據(數字和文本)。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。

它有很多好處,可存儲大量數據,耗時少,易操作,可被Office可打開等。

對于目前很多和下位機硬件進行數據交互,在上位機轉存的數據一般情況都會是csv文件。

csv格式展示形式

C#導出CSV文件

try {string?strBufferLine?=?"";StreamWriter?strmWriterObj?=?new?StreamWriter(strFilePath,?false,?Encoding.UTF8);????????????????strmWriterObj.WriteLine(tableheader);????????????????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();strmWriterObj.Dispose();return?dt.Rows.Count;}catch?(Exception?ex){throw?new?Exception(ex.Message);}

C#導入CSV文件

public?static?DataTable?Csv2Dt(string?filePath,?int?n,?DataTable?dt){try{var?encoding?=?CommonFileHelper.GetFileEncodeType(filePath);StreamReader?reader?=?new?StreamReader(filePath,?encoding,?false);int?i?=?0,?m?=?0;reader.Peek();DataRow?dr;while?(reader.Peek()?>?0){????????????????????????????????????????m?=?m?+?1;????????????????????string?str?=?reader.ReadLine();if?(m?>=?n?+?1){string[]?split?=?str.Split(',');dr?=?dt.NewRow();for?(i?=?0;?i?<?split.Length;?i++){if?(i?==?0){dr[i]?=?split[i];}???????????????????????????else{if?(string.IsNullOrEmpty(split[i])){????????????????????????????????????dr[i]?=?DBNull.Value;}else{dr[i]?=?Convert.ToDouble(split[i]);}}}dt.Rows.Add(dr);}}reader.Close();reader.Dispose();return?dt;}catch?(Exception?ex){????????????????????throw?new?Exception(ex.Message);}????????????}

很高興您能看到這里,希望對你有幫助。

寄語

人生短暫,我不想去追求自己看不見的,我只想抓住我能看得見的。

原創不易,給個關注。

我是阿輝,感謝您的閱讀,如果對你有幫助,麻煩點贊、轉發 ?謝謝。

很高興能和您成為朋友。



推薦閱讀

分享給同做程序員的你我他

畢業四年,我當初是如何走上編程這條路的!

物聯網工程專業的迷茫與抉擇

總結

以上是生活随笔為你收集整理的C#导入导出.CSV文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。