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

歡迎訪問 生活随笔!

生活随笔

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

C#

c#实现数据集合转换为csv文本

發布時間:2025/4/5 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#实现数据集合转换为csv文本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

1、將一個數據集合導出到一個csv文件中,集合類型可以視為 List<T>,T為任意類型,T包含多個屬性,可指定部分屬性進行導出

2、軟件中有多種不同類型的數據類型需要進行導出


需求很簡單,簡單分析下


1、csv格式就是文本格式,包含多行數據,每行包含多列文字,文字間已Tab標記分隔(簡單,無需過多考慮)

2、針對數據類型T可以是任意類型,

3、支持指定屬性導出,同一個類型也允許指定不同的屬性組分別導出

4、屬性與最終生成的文件中的列 一一對應,每個屬性可以設置對應的列名稱


初步構想解決方案

1、指定需要導出的屬性名稱,通過反射獲取對象的屬性值

2、拼接為csv文本字符串

3、提供屬性名稱與列名稱的一一對應關系

4、使用一個簡單的導出csv工具類型,僅一個一個靜態方法,接受List<T>類型數據集合,以List<Piar>方式傳入ColumnName與PropertyName的鍵值對

5、寫入某指定的csv文件


實際編碼

開發過程適當合理更改,如將文件寫入邏輯移除(文件寫入邏輯應在上層進行),保持導出邏輯簡單,形成如下代碼


調用方法

假設類型定義如下

public class User {public string Name { get;set; }public string Info { get;set; } }

若存在一個用戶列表List<User> Users{get;set;}

則生成csv格式字符串的代碼如下

public string GenerateUserExportText() {return ExportCsvUtility.GenerateExportText(Usrs, new List<KeyValuePair<string, string>>(){new KeyValuePair<string, string>("用戶名", "Name"),new KeyValuePair<string, string>("用戶信息", "Info"),}); }



上層使用的選擇保存文件 及 寫入文件的方法可以參照我提供的下列代碼:

注意StreamWriter的構造方法中,需傳入參數設置Unicode編碼,否則Excel打開csv文件會有問題


private bool TryGetOutFilePath(out string filePath){SaveFileDialog saveFileDialog = new SaveFileDialog(){FileName = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"),DefaultExt = ".text",Filter = "csv documents (.csv)|*.csv",};if (saveFileDialog.ShowDialog() == true){filePath = saveFileDialog.FileName;return true;}filePath = string.Empty;return false;}private void ExportToFile(string filePath, string fullText){try{using (FileStream outFileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)){using (TextWriter textWriter = new StreamWriter(outFileStream, Encoding.Unicode)){textWriter.Write(fullText);}}}catch (Exception e){ExceptionHandler.HandleException(e);}}
后續Ant會帶來更多c#相關技術文章


代碼中使用的反射技巧,直接從我的其他項目中抽取了過來,后續可以專門做個介紹

轉載于:https://www.cnblogs.com/gods/p/3887668.html

總結

以上是生活随笔為你收集整理的c#实现数据集合转换为csv文本的全部內容,希望文章能夠幫你解決所遇到的問題。

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