欢迎您成为我的读者,希望这篇文章能给你一些帮助。

前言

大家好,我是阿辉。

今天和大家一起来看看,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文件相关推荐

  1. Java导入导出CSV文件

    场景:导入导出CSV文件 1.CSVUtils类 package com.delta.gddx;import java.io.BufferedReader; import java.io.Buffer ...

  2. mysql SQLyog导入导出csv文件

    1.选择数据库表 --> 右击属性 --> 备份/导出 --> 导出表数据作为 --> 选择cvs --> 选择下面的"更改" --> 字段 - ...

  3. php mysql导出csv文件_详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...

  4. php 利用csv导,php 导入/导出 csv 文件

    1.简介 项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用原生PHP,实现了CSV格式数据的导入和导出功能.并解决相关乱码问题. 将xl ...

  5. 如何在SQL Server 2016中使用R导入/导出CSV文件

    介绍 (Introduction) Importing and exporting CSV files is a common task to DBAs from time to time. 导入和导 ...

  6. thinkphp5 导入/导出 Csv文件

    1,在thinkphp/library/think下新建Csv.php文件, Csv.php 代码 <?php namespace Think; class Csv {     //导出csv文 ...

  7. BCP命令,导入导出CSV文件

    关于bcp,因为每天都要从数据库中导出大量的数据到本地,虽然不知道要干嘛...但对我来说也是个艰巨的任务.因为数据量太大,近亿的数据量,我也是初出茅庐,才知道一个公司长年积累的数据有多恐怖.随便一个s ...

  8. php页面导出csv,使用PHP生成并导出CSV文件

    CSV文件是以纯文本形式存储的,一般以逗号为分隔符. 这里主要简单介绍下如何导出CSV文件. 一.浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() ...

  9. java导出csv文件_R语言数据导入与导出

    R语言数据导入与导出 整这么一个系列,还是因为学R语言时遇到过一个非常"小白友好"的网站"DataScience Made Simple".相信很多人搜到过这个 ...

最新文章

  1. 用了N年的接口,你知道接口是什么吗?——一个简单实例说明接口的伟大意义...
  2. 阿里P7试用期被淘汰,主管给出的理由让人意想不到
  3. python opencv 官方文档里LaTeX公式不能正常显示怎么办?
  4. 前端学习(1821):前端面试题之封装函数之去重
  5. jQuery浏览器类型判断和分辨率判断
  6. python正则表达式数字开头_Python正则表达式总结
  7. 2012年美国计算机研究生排名,2012年美国研究生留学 计算机专业院校排名TOP50
  8. UI设计不能忽略的字体设计素材
  9. Python接口自动化之unittest单元测试
  10. Spring WebFlux 要革了谁的命?
  11. X509证书结构及解析
  12. 计算机运算实际运算的误差,误差
  13. H5第三方专业支付接口、安全稳定、费率优惠
  14. 发现最新的区块链应用-8月16日
  15. mongo报socket exception raised
  16. iOS开发中设置UITableView每组头试图与第一行cell之间的分割线
  17. html多页面之间如何通信,html5中sharedWorker实现多页面通信代码示例
  18. ZYNQ Linux 逻辑端(PL)中断demo
  19. python模块之 paramiko
  20. 物理学中的衔尾蛇(Ouroboros)

热门文章

  1. 时间处理总结(二)oracle
  2. 8.2设备文件及磁盘分区
  3. linux下重启mysql php nginx
  4. jQuery选择器和方法的等价关系
  5. IDEA开发工具的学习
  6. idea中开启Run Dashboard
  7. 10_30_unittest
  8. 常用模块之 time,datetime,random,os,sys
  9. pip install mysql-connector 安装出错
  10. Eclipse启动时布局不合理调整