欢迎访问 生活随笔!

生活随笔

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

C#

C#导入导出.CSV文件

发布时间:2023/12/4 C# 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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文件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。