Winform datagirdview导出Excel 封装方法 好用!!!

转自:https://www.cnblogs.com/chaowang/p/6265698.html

1,窗体设计

首先需要引入程序集:Microsoft.Office.Interop.Excel  (如果没有引用过的需要右键添加引用再搜索就行了)

实现的方法:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

/// <summary>

   ///

   /// </summary>

   /// <param name="fileName">文件路径</param>

   /// <param name="myDGV">控件DataGridView</param>

   private void ExportExcels(string fileName, DataGridView myDGV)

   {

       string saveFileName = "";

       SaveFileDialog saveDialog = new SaveFileDialog();

       saveDialog.DefaultExt = "xls";

       saveDialog.Filter = "Excel文件|*.xls";

       saveDialog.FileName = fileName;

       saveDialog.ShowDialog();

       saveFileName = saveDialog.FileName;

       if (saveFileName.IndexOf(":") < 0) return//被点了取消

       Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

       if (xlApp == null)

       {

           MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");

           return;

       }

       Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;

       Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

       Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1

       //写入标题

       for (int i = 0; i < myDGV.ColumnCount; i++)

       {

           worksheet.Cells[1, i + 1] = myDGV.Columns[i].HeaderText;

       }

       //写入数值

       for (int r = 0; r < myDGV.Rows.Count; r++)

       {

           for (int i = 0; i < myDGV.ColumnCount; i++)

           {

               worksheet.Cells[r + 2, i + 1] = myDGV.Rows[r].Cells[i].Value;

           }

           System.Windows.Forms.Application.DoEvents();

       }

       worksheet.Columns.EntireColumn.AutoFit();//列宽自适应

       if (saveFileName != "")

       {

           try

           {

               workbook.Saved = true;

               workbook.SaveCopyAs(saveFileName);

           }

           catch (Exception ex)

           {

               MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);

           }

       }

       xlApp.Quit();

       GC.Collect();//强行销毁

       MessageBox.Show("文件: " + fileName + ".xls 保存成功""信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

   }

 点击按钮调用


1

2

3

4

5

private void button1_Click(object sender, EventArgs e)

{

    string a = "D:" "\\KKHMD.xls";

    ExportExcels(a, dataGridView1);

}

  完成截图

原文地址:https://www.cnblogs.com/baimangguo/p/10434740.html

时间: 2024-10-11 01:07:57

Winform datagirdview导出Excel 封装方法 好用!!!的相关文章

asp.net DataTable导出 excel的方法记录(第三方)

官网:http://npoi.codeplex.com/ 简单应用,主要是可以实现我们想要的简单效果,呵呵 需要引入dll,可以在官网下载,也可在下面下载 C#代码   protected void getExcel(DataTable dt) { NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.Sheet sheet = book.CreateSh

ASP.NET导出excel表方法汇总

asp.net里导出excel表方法汇总  1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Di

winform导入导出excel,后台动态添加控件

思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(string extension = Path.GetExtension(fileDialog.FileName).ToLower();),并设置允许后缀文件名: 3,NPOI转datetable,遍历tatetable转成实体类列表并入库: 导出: 1, 创建提示用户保存类,SaveFileDial

C#关于导出excel的方法

一说到导出excel可能很多人都会觉得说直接利用npoi 导入导出excel格式的文件,那样非常方便,但是可能有些时候有的浏览器不支持,那么该怎么办呢,现在介绍一种纯C#的导出excel的方法,代码如下: 1 public void excel_output1(DataTable dt) 2 { 3 Response.Clear(); 4 5 Response.Buffer = true; 6 7 Response.Charset = "utf-8 "; 8 Response.AddH

Winform DataGridView导出Excel

private void 导出excelToolStripMenuItem_Click(object sender, EventArgs e) { if (dgvData.RowCount > 0) { var saveFileDialog1 = new SaveFileDialog { Filter = @"Excel文件(*.xls,*.xlsx)|*.xls;*.xlsx", RestoreDirectory = true }; if (saveFileDialog1.Sh

PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数

CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段. 与 fgets() 类似,不同的是 fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组. fgetcsv() 出错时返回 FALSE,包括碰到文件结束时. 具体使用时封装函数如下: /** * 导入Excel数据表格 * @param string

POI 导出Excel 封装

package test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import org.apache.poi.hss

php两种导出excel的方法

所需要的:jquery库,phpexcel插件,页面导出excel效果测试文件explode.php,excel导出功能实现文件exp.php和explode_excel.php,文件相关内容在此文下面: explode.php:测试页面内容:访问此页面后单击explode1与explode2能导出两种不同效果的excel,代码如下: <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org

导出Excel公共方法

public static class OutputExcel { private static string outPath = System.Web.HttpContext.Current.Server.MapPath("~"); private static string outPathHadTrim = System.Web.HttpContext.Current.Server.MapPath("~").TrimEnd(new char[] { '/', '