方法一:

SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Execl files (*.xls)|*.xls";
dlg.FilterIndex = 0;
dlg.RestoreDirectory = true;
dlg.CreatePrompt = true;
dlg.Title = "保存为Excel文件";
dlg.FileName = "不合格记录";//保存的Excel名字
if (dlg.ShowDialog() == DialogResult.OK)
{Stream myStream;myStream = dlg.OpenFile();StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));string columnTitle = "";try{//写入列标题  for (int i = 0; i < dgv.ColumnCount; i++){if (i > 0){columnTitle += "\t";}columnTitle += dgv.Columns[i].HeaderText;}sw.WriteLine(columnTitle);//写入列内容  for (int j = 0; j < dgv.Rows.Count; j++){string columnValue = "";for (int k = 0; k < dgv.Columns.Count; k++){if (k > 0){columnValue += "\t";}if (dgv.Rows[j].Cells[k].Value == null)columnValue += "";elsecolumnValue += dgv.Rows[j].Cells[k].Value.ToString().Trim();}sw.WriteLine(columnValue);}sw.Close();myStream.Close();}catch (Exception e){MessageBox.Show(e.ToString());}finally{sw.Close();myStream.Close();}
}

方法二:包含图片

Microsoft.Office.Interop.Excel.Application Myexcel = new Microsoft.Office.Interop.Excel.Application();if (Myexcel == null){return;}Microsoft.Office.Interop.Excel._Workbook xBk;xBk = Myexcel.Application.Workbooks.Add(true);Microsoft.Office.Interop.Excel._Worksheet xSt;xSt = (Microsoft.Office.Interop.Excel._Worksheet)xBk.ActiveSheet;//设置标题等 string Title = null;Title = DateTime.Now.ToLongDateString() + "报价表";xSt.Name = Title;//报表的格式设置 //xSt.Cells[1, 6] = Title;// xSt.get_Range(Myexcel.Cells[1, 6], Myexcel.Cells[1, 6]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐 // xSt.get_Range(Myexcel.Cells[1, 6], Myexcel.Cells[1, 6]).Font.Bold = true;//xSt.get_Range(Myexcel.Cells[1, 6], Myexcel.Cells[1, 6]).Font.Size = 20;xSt.Cells[1, 1] = "品号";xSt.Cells[1, 2] = "品名";xSt.Cells[1, 3] = "客户品号";xSt.Cells[1, 4] = "图片";xSt.Cells[1, 5] = "客户编码";xSt.Cells[1, 6] = "客户名称";xSt.Cells[1, 7] = "数量";xSt.Cells[1, 8] = "币种";xSt.Cells[1, 9] = "汇率";xSt.Cells[1, 10] = "原币单价";xSt.Cells[1, 11] = "原币总价";xSt.Cells[1, 12] = "本币单价";xSt.Cells[1, 13] = "本币总价";xSt.Cells[1, 14] = "创建时间";//下面是用循环把datagridview中的内容写到excelfor (int rowIndex = 0; rowIndex < this.dgvQuotation.Rows.Count; rowIndex++){int colIndex = 0;for (colIndex = 1; colIndex <= dgvQuotation.ColumnCount; colIndex++){String value = null;if (dgvQuotation.Rows[rowIndex].Cells[colIndex - 1].Value != null){value = dgvQuotation.Rows[rowIndex].Cells[colIndex - 1].Value.ToString();if (dgvQuotation.Columns[colIndex - 1].Name == "图片") //处理{Image img;//如果是二进制形式://MemoryStream ms = new MemoryStream((byte[])dgvQuotation.Rows[rowIndex].Cells[colIndex - 1].Value);if (File.Exists(@"D:\产品图片\" + dgvQuotation.Rows[rowIndex].Cells[0].Value.ToString() + ".jpg")){//需要判断是否存在图片img = Image.FromFile(@"D:\产品图片\" + dgvQuotation.Rows[rowIndex].Cells[0].Value.ToString() + ".jpg");//双引号里是图片的路径}else{//需要判断是否存在图片img = Image.FromFile(@"D:\产品图片\LOGO.jpg");//双引号里是图片的路径}//Image img = Image.FromStream(ms);//路径// Image img = GetImage(value);string tmpName = tmpPath + "\\temp" + rowIndex + ".bmp";img.Save(tmpName);string cellAddr = (GetAddress(rowIndex + 4, colIndex));Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)xSt.get_Range(cellAddr, Type.Missing);float left = float.Parse(range.Left.ToString());float top = float.Parse(range.Top.ToString());float width = float.Parse(range.Width.ToString());float height = float.Parse(range.Height.ToString());xSt.Shapes.AddPicture(tmpName, MsoTriState.msoFalse, MsoTriState.msoTrue, left, top, width, height);//xSt.Shapes.AddPicture(tmpName, MsoTriState.msoFalse, MsoTriState.msoTrue, left, top, 200, 200);continue;}}xSt.Cells[rowIndex + 4, colIndex] = value;}}//后台处理 //用户无法看到Myexcel.Visible = false;//允许打开对话框保存文件Myexcel.DisplayAlerts = true;// xBk.Close(true, "D:\\1.xls", null);xSt = null;xBk = null;Myexcel.Quit();System.Runtime.InteropServices.Marshal.ReleaseComObject(Myexcel);Myexcel = null;

[WinForm]dataGridView导出到EXCEL相关推荐

  1. DataGridView导出到Excel的三个方法

    DataGridView导出到Excel的三个方法 原文:[转]DataGridView导出到Excel的三个方法 原文出处:http://www.yongfa365.com/Item/DataGri ...

  2. Winform 中 dataGridView 导出到Excel中的方法总结

    最近,在做CS端数据导出到Excel中时网上找了很多代码感觉都不是自己想要的,通过自己的整理归纳得到一个比较通用的方法,就给大家分享一下: 该方法需要用到两个参数(即对象),一个  DataGridV ...

  3. NPOI 将DataGridView导出到Excel

    导出为xls格式用HSSF,xlsx用XSSF. 1.类 using System; using System.Collections.Generic; using System.Linq; usin ...

  4. WinForm下DataGridView导出Excel的实现

    WinForm下DataGridView导出Excel的实现   1.说明:导出的效率说不上很高,但至少是可以接收的.参考网上很多高效导出Excel的方法,实现到时能够实现的,导出速度也很快,不过缺陷 ...

  5. datagridview序号左对齐_winform DataGridView数据导出到excel中

    winform DataGridView数据导出到excel中 实例一 private void button5_Click_1(object sender, EventArgs e) { //建立E ...

  6. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  7. C#将dataGridView中显示的数据导出到Excel(大数据量超实用版)

    开发中很多情况下需要将dataGridView控件中显示的数据结果以Excel或者Word的形式导出来,本例就来实现这个功能.由于从数据库中查找出某些数据列可能没必要显示出来,在dataGridVie ...

  8. 行添加DataGridView导出Excel的数据表格

    最近研究行添加,稍微总结一下,以后继续补充: 将DataGridView中的据数导出为Excel的据数表格,方法有很多种,面下供提一种本人认为是一个好解理,较单简的方法.步调如下: 1.添加引用 2. ...

  9. 用NPOI将DataGridView中需要的列导出为Excel

    NPOI是什么? NPOI是POI的.Net版本,即"N"表示"Net".不论是NPOI还是POI,它们其实都是已经编写好的类库.类库大家并不陌生,我们在建立B ...

最新文章

  1. 几个流行移动前端框架的比较评分
  2. 陌陌股价过山车背后隐藏了什么?
  3. [转] 三层开发中的层次划分
  4. [BUUCTF-pwn]——ciscn_2019_es_2(内涵peak小知识)
  5. 百万数据报表读取:解决方案及原理分析
  6. Plain text, flat file, 及flat-file database 如何翻译
  7. android开发设计平台,10款开发和设计应该安装的android应用
  8. 未来十大技能职场吃香
  9. 基于Linux和MiniGUI的嵌入式系统软件开发指南(五)
  10. 项目方案-标书-文档等等编写规范
  11. pycharm 远程调试图文_pycharm远程调试openstack的图文教程
  12. 聚合maven+spring-boot打包可执行jar
  13. (转载)网络互联参考模型(详解)
  14. http是不是中间件_等保2.0涉及的Apache Tomcat中间件(上)
  15. java中文转繁体汉字
  16. html语言 图片大小,html如何设置图片大小
  17. win10专业版激活方法
  18. 经典对抗攻击Deepfool原理详解与代码解读
  19. ffmpeg 转换flv压缩大小_[转]ffmpeg转换参数和对几种视频格式的转换分析
  20. linux关键vi按什么键n,linux vi 使用方法

热门文章

  1. asp.net MVC留言本示例
  2. 马化腾:整天在拍拍网上买东西,找感觉
  3. 推特安卓版漏洞可导致攻击者访问用户私信
  4. android手机状态解释,比方android.os.Build.VERSION.SDK
  5. 《为iPad而设计:打造畅销App》——了解客户
  6. 如何限制用户在某一时间段多次访问接口
  7. 一句话让你明白伪元素和伪类的区别
  8. 《C语言及程序设计》实践参考——转着圈加密
  9. 迟来的2013年总结及算法工程师/研究员找工作总结
  10. coreseek实时索引更新之增量索引