1. if (dataGridView1.Rows.Count == 0)
  2. {
  3. MessageBox.Show("No data available!", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
  4. return;
  5. }
  6. else
  7. {
  8. SaveFileDialog saveFileDialog = new SaveFileDialog();
  9. saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
  10. saveFileDialog.FilterIndex = 0;
  11. saveFileDialog.RestoreDirectory = true;
  12. saveFileDialog.CreatePrompt = true;
  13. saveFileDialog.FileName = null;
  14. saveFileDialog.Title = "Save path of the file to be exported";
  15. if (saveFileDialog.ShowDialog() == DialogResult.OK)
  16. {
  17. Stream myStream = saveFileDialog.OpenFile();
  18. StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
  19. string strLine = "";
  20. try
  21. {
  22. //Write in the headers of the columns.
  23. for (int i = 0; i < dataGridView1.ColumnCount; i++)
  24. {
  25. if (i > 0)
  26. strLine += ",";
  27. strLine += dataGridView1.Columns[i].HeaderText;
  28. }
  29. strLine.Remove(strLine.Length - 1);
  30. sw.WriteLine(strLine);
  31. strLine = "";
  32. //Write in the content of the columns.
  33. for (int j = 0; j < dataGridView1.Rows.Count; j++)
  34. {
  35. strLine = "";
  36. for (int k = 0; k < dataGridView1.Columns.Count; k++)
  37. {
  38. if (k > 0)
  39. strLine += ",";
  40. if (dataGridView1.Rows[j].Cells[k].Value == null)
  41. strLine += "";
  42. else
  43. {
  44. string m = dataGridView1.Rows[j].Cells[k].Value.ToString().Trim();
  45. strLine += m.Replace(",", ",");
  46. }
  47. }
  48. strLine.Remove(strLine.Length - 1);
  49. sw.WriteLine(strLine);
  50. //Update the Progess Bar.
  51. // toolStripProgressBar1.Value = 100 * (j + 1) / dataGridView1.Rows.Count;
  52. }
  53. sw.Close();
  54. myStream.Close();
  55. MessageBox.Show("Data has been exported to:" + saveFileDialog.FileName.ToString(), "Exporting Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
  56. // toolStripProgressBar1.Value = 0;
  57. }
  58. catch (Exception ex)
  59. {
  60. MessageBox.Show(ex.Message, "Exporting Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
  61. }
  62. }
  63. }

C# 一些代码小结--datGirdView 保存到csv文件的更多相关文章

  1. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  2. 使用scrapy爬取的数据保存到CSV文件中,不使用命令

    pipelines.py文件中 import codecs import csv # 保存到CSV文件中 class CsvPipeline(object): def __init__(self): ...

  3. 使用pandas中的raad_html函数爬取TOP500超级计算机表格数据并保存到csv文件和mysql数据库中

    参考链接:https://www.makcyun.top/web_scraping_withpython2.html #!/usr/bin/env python # -*- coding: utf-8 ...

  4. python3 把excel文件合并并保存到csv文件

    具体是这样,某路径下有很多 excel文件,文件名中包含相同关键字的是一类文件,把包含相同关键字的文件合并成一个文件,生成一个新的csv文件 # coding=utf-8 import xlrd im ...

  5. 多种方法爬取猫眼电影Top100排行榜,保存到csv文件,下载封面图

    参考链接: https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/83663400 https://www.makcyun.top/web_sc ...

  6. 将一个命令的输出保存到CSV文件

    执行段: 结果段: 补充:配合不同的命令可以使工作更加简单 使用Imort-Csv命令从文件中导入结构化数据

  7. 记录python爬取猫眼票房排行榜(带stonefont字体网页),保存到text文件,csv文件和MongoDB数据库中

    猫眼票房排行榜页面显示如下: 注意右边的票房数据显示,爬下来的数据是这样显示的: 网页源代码中是这样显示的: 这是因为网页中使用了某种字体的缘故,分析源代码可知: 亲测可行: 代码中获取的是国内票房榜 ...

  8. iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)

    本地数据的存储(使用NSCoder将对象保存到.plist文件)   下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象).   功能如下: ...

  9. ffmpeg学习(二) 通过rtsp获取H264裸流并保存到mp4文件

    本篇将使用上节http://www.cnblogs.com/wenjingu/p/3977015.html中编译好的库文件通过rtsp获取网络上的h264裸流并保存到mp4文件中. 1.VS2010建 ...

随机推荐

  1. Birthday(费用流)

    Birthday https://www.nowcoder.com/acm/contest/206/A 题目描述 恬恬的生日临近了.宇扬给她准备了一个蛋糕. 正如往常一样,宇扬在蛋糕上插了n支蜡烛,并 ...

  2. python之函数(function)

    #今天来学习一下函数,function# 定义一个函数的时候,函数不会被执行,只有调用函数,函数才会执行## 定义函数# # 1.def是创建函数的关键字,创建函数# # 2.函数名# # 3.()# ...

  3. Excel单元格内容批量加前缀

    比如83190001在A1单元格,要在A列单元内容前面批量加0,在B1输入公式="0"&A1然后向下复制再把B列复制的结果再复制一下:然后到新的一列粘贴,在“粘贴选项”中选 ...

  4. python生成验证码,文字转换为图片-乾颐堂

    在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码.这些都是动态生成的,今天我们来看一下如何用python把文字生成图片.其实今天主要借助pygame的图像渲染模块,这样比较简单 ...

  5. 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件

    在开始通过ANT运行build.xml之前,有一步必须要做,那就是将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant ...

  6. C++11的一般概念——The C++ standard library, 2nd Edition 笔记(二)

    ( 原书第四章,General Concepts) 只介绍新内容,关于头文件格式和后缀等C++03已经规范化的内容,不再赘述. namespace std:新的std子空间包括: std::tr1, ...

  7. 判定map中是否存在某元素

    判断某key是否存在可以使用map的count方法来间接判定 count接受一个参数key值,返回map中key值为给定值的元素总数 map<int, string> i_to_s_map ...

  8. 2018.06.30 BZOJ1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Description windy定义了一种windy数.不含前导零且相邻两 ...

  9. C++之new/delete/malloc/free详解

    主要内容: 1.  C语言中的函数malloc和free 2.  C++中的运算符new和delete 3.  new/delete与malloc/free之间的联系和区别 4.  C/C++程序的内 ...

  10. UVaLive 3353 Optimal Bus Route Design (最小费用流)

    题意:给定一个 n 个点的有向带权图,让你找若干个圈,使得每个结点恰好属于一个圈,并且总长度尽量小. 析:一开始想的是先缩点,先用DP,来求... 题解给的是最小费用流或者是最佳完全匹配,其实都是一样 ...