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文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CA周记 - 用 Visual Stud
- 下一篇: FreeBSD大败局