1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace listsjk
  8. {
  9. class dataGridView数据导入excel
  10. {
  11.  
  12. }
  13. private void ExportExcel(string banname, string fileName, DataGridView dataGridView1)
  14. {
  15. string saveFileName = "";
  16. //bool fileSaved = false;
  17. //打开对话框
  18. SaveFileDialog saveDialog = new SaveFileDialog();
  19. saveDialog.DefaultExt = "xlsx";
  20. saveDialog.Filter = "Excel文件|*.xlsx";
  21. saveDialog.FileName = fileName;
  22. saveDialog.ShowDialog();
  23. saveFileName = saveDialog.FileName;
  24. if (saveFileName.IndexOf(":") < 0) return; //被点了取消
  25. //新建excel文件对象
  26. Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
  27. if (excel == null)
  28. {
  29. MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
  30. return;
  31. }
  32.  
  33. Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
  34. Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
  35. Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
  36. worksheet.get_Range("A1", "A2").ColumnWidth = 7;
  37. //设置excel单元格格式
  38. string[] abc = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
  39. for (int j = 0; j < dataGridView1.Columns.Count; j++)
  40. {
  41. //范围内单元格文本居中显示
  42. worksheet.get_Range("A3", abc[dataGridView1.Columns.Count - 1] + Convert.ToString(dataGridView1.Rows.Count + 5)).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
  43. //范围内单元格合并
  44. worksheet.get_Range(abc[0] + Convert.ToString(1), abc[j] + Convert.ToString(3)).Merge(worksheet.get_Range(abc[j] + Convert.ToString(1), abc[j] + Convert.ToString(3)).MergeCells);
  45. //excel.Cells[abc[0] + Convert.ToString(1), abc[j] + Convert.ToString(3)] = "装港新增加一个工作簿";
  46. //范围内单元格宽度
  47. worksheet.get_Range(abc[j + 1] + Convert.ToString(1), abc[j] + Convert.ToString(1)).ColumnWidth = 18;
  48. //worksheet.get_Range(abc[0] + Convert.ToString(1), abc[0] + Convert.ToString(2)).Merge(worksheet.get_Range(abc[0] + Convert.ToString(1), abc[0] + Convert.ToString(2)).MergeCells);
  49. // //worksheet.get_Range("B1", "B2").Merge(worksheet.get_Range("B2", "B2").MergeCells);
  50. }
  51.  
  52. worksheet.Cells[1, 1] = banname ;
  53. //MessageBox.Show(abc[0] + Convert.ToString(0 + 1), abc[0] + Convert.ToString(0 + 2));
  54. //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错
  55. //excel.Application.Workbooks.Add(true);
  56.  
  57. //生成Excel中列头名称
  58. for (int i = 0; i < dataGridView1.Columns.Count; i++)
  59. {
  60. excel.Cells[4, i + 1] = dataGridView1.Columns[i].HeaderText;
  61. }
  62. //把DataGridView当前页的数据保存在Excel中
  63. for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
  64. {
  65. for (int j = 0; j < dataGridView1.Columns.Count; j++)
  66. {
  67. if (dataGridView1[j, i].ValueType == typeof(string))
  68. {
  69. excel.Cells[i + 5, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
  70. }
  71. else
  72. {
  73. excel.Cells[i + 5, j + 1] = dataGridView1[j, i].Value.ToString();
  74. }
  75. }
  76. }
  77.  
  78. if (saveFileName != "")
  79. {
  80. try
  81. {
  82. workbook.Saved = true;
  83. workbook.SaveCopyAs(saveFileName);
  84. //fileSaved = true;
  85. }
  86. catch (Exception ex)
  87. {
  88. //fileSaved = false;
  89. MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
  90. }
  91.  
  92. }
  93. //else
  94. //{
  95. // fileSaved = false;
  96. //}
  97. excel.Quit();
  98. GC.Collect();//强行销毁
  99. // if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
  100. MessageBox.Show(fileName + "的统计信息保存成功", "提示", MessageBoxButtons.OK);
  101. }
  102. }

  

Import Excel void (NPOI)的更多相关文章

  1. csharp: Export or Import excel using NPOI

    excel 2003: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...

  2. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  3. C# Excel使用NPOI

    程序处理excel使用using Microsoft.Office.Interop.Excel方式,运行程序需要电脑安装excel,而且excel版本还需要一样,使用起来不方便.使用NPOI不用电脑安 ...

  4. ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)

    网上提供了很多Asp.net中操作Excel的方法,其中大部分是调用微软的Office组件,下面提供三个无须安装Office即可从Asp.net输出Excel的方法. 1 简单方法 //下面代码输出的 ...

  5. 导出到Excel中NPOI

    源地址:http://www.cnblogs.com/dreamof/archive/2010/06/02/1750151.html\ 1.NPOI官方网站:http://npoi.codeplex. ...

  6. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  7. csharp: Export or Import excel using MyXls,Spire.Xls

    excel 2003 (效果不太理想) using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  8. .net excel利用NPOI导入oracle

    1.链接数据库 引用System.Data.OracleClient: //数据库链接字符串   Data Source如:192.168.5.153:1521/orcl string linkStr ...

  9. ASP.NET中的Excel操作(NPOI方式)

    代码准备: 一:实体准备 代码如下: /// <summary> /// 一个能添加到将要导出到指定行的实体类型规范 /// data:{int StartColIndex ? 0, in ...

随机推荐

  1. maya cmds pymel 选择 uv area(uv 面积) 为0 的面

    maya cmds pymel 选择 uv area(uv 面积) 为0 的面 cmds.selectType( pf=True ) cmds.polySelectConstraint( m=3, t ...

  2. scrapy的持久化相关

    终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 需求是:将糗百首页中段子的内容和标 ...

  3. OI暑假集训游记

    莞中OI集训游记 Written BY Jum Leon. I        又是一载夏,本蒟蒻以特长生考入莞中,怀着忐忑的心情到了8月,是集训之际.怀着对算法学习的向往心情被大佬暴虐的一丝恐惧来到了 ...

  4. IIS 程序池与Site 导出、导入

    如何在IIS7或IIS7.5中导入导出站点及应用程序池. 为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我 ...

  5. golang二进制bit位的常用操作

    golang作为一热门的兼顾性能 效率的热门语言,相信很多人都知道,在编程语言排行榜上一直都是很亮眼,作为一门强类型语言,二进制位的操作肯定是避免不了的,数据的最小的单位也就是位,尤其是网络中封包.拆 ...

  6. php使用protobuf3

    protoc的介绍,安装 1.定义一个protoc 文件 示例:person.proto syntax="proto3"; //声明版本,3x版本支持php package tes ...

  7. mysql 字符编码

    安装的是mysql5.6 社区版 安装之后编码设置为utf8 mysql的ini文件中 [mysql] default-character-set=utf8 [mysqld] default-char ...

  8. 使用Bandwagon服务器ftp解决git clone速度慢的问题

    写在前面 git clone速度往往很慢,我们可以先在身处美国的服务器上git clone,然后把文件用ftp传回来即可. 开始 我们以opencv为例 git clone https://githu ...

  9. thinkphp mysql查询结果为什么全是string问题

    找到根目录下的thinkphp\library\think\db\Connection.php 文件 // PDO连接参数 protected $params = [ PDO::ATTR_CASE = ...

  10. Data Center手册(1):架构

    如图是数据中心的一个基本架构 最上层是Internet Edge,也叫Edge Router,也叫Border Router,它提供数据中心与Internet的连接. 连接多个网络供应商来提供冗余可靠 ...