datagridview数据导出到excel

Posted lee24789229

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datagridview数据导出到excel相关的知识,希望对你有一定的参考价值。

         /// <summary>
         /// 导出Excel
         /// </summary>
         /// <param name="mydgv">控件 DataGridView </param>
         /// <param name="dic">中英文对照的标题 </param>
         public static void ExportTasks(DataGridView mydgv, Dictionary <string, string> dic)
         {
             // 定义要使用的Excel 组件接口
             // 定义Application 对象,此对象表示整个Excel 程序
             Microsoft.Office.Interop.Excel.Application excelApp = null;
             // 定义Workbook对象,此对象代表工作薄
             Microsoft.Office.Interop.Excel.Workbook workBook;
             // 定义Worksheet 对象,此对象表示Execel 中的一张工作表
             Microsoft.Office.Interop.Excel.Worksheet ws = null;
             //定义Range对象,此对象代表单元格区域
             Microsoft.Office.Interop.Excel.Range range;

             int dcell = 1;
             int rowindex = 0; int colindex = 0;

             int rowcount = mydgv.Rows.Count;
             int colcount = mydgv.Columns.Count;
             int dispcolcount = dic.Count;
             try
             {
                 //初始化 Application 对象 excelApp
                 excelApp = new Microsoft.Office.Interop.Excel.Application();
                 //在工作薄的第一个工作表上创建任务列表
                 workBook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                 ws = (Worksheet)workBook.Worksheets[1];

                 // 命名工作表的名称为
                 ws.Name = "Sheet1";
                 //创建缓存
                 Object[,] objdata = new object[rowcount + 1, colcount];
                 //创建标题
                 foreach (string s in dic.Keys)
                 {
                     objdata[rowindex, colindex++] = dic[s].ToString();
                 }
                 //获取数据
                 for (int i = 0; i < rowcount; i++)
                 {
                     dcell = 0;
                     foreach (string ss in dic.Keys)
                     {
                         for (int j = 0; j < colcount; j++)
                         {
                             if (mydgv.Columns[j].Name == ss)
                             {
                                 objdata[i + 1, dcell++] = mydgv.Rows[i].Cells[j].FormattedValue.ToString(); //得到样式之后的值
                             }
                         }
                     }
                 }
                 //写入Excel            
                 range = ws.get_Range(excelApp.Cells[1, 1], excelApp.Cells[rowcount, dispcolcount]);
                 range.Value2 = objdata;
                 System.Windows.Forms.Application.DoEvents();
                 //设置格式
                 excelApp.Cells.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlLeft; //全局左对齐
                 excelApp.Cells.EntireColumn.AutoFit();
                 range = ws.get_Range(excelApp.Cells[1, 1], excelApp.Cells[1, colcount]);
                 range.Font.Bold = true; //标题粗体
                 //显示 Excel
                 excelApp.Visible = true;

             }
             catch (Exception ex)
             {
                 throw ex;
             } 

 

以上是关于datagridview数据导出到excel的主要内容,如果未能解决你的问题,请参考以下文章

C#中把datagridview中显示的数据导出到excel中

使用互操作将 datagridview 导出到 excel

c#中将datagridview中数据导出到excel中,点击保存可以保存,点击取消就出

c# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据

DataGridView导出数据到Excel及单元格格式的改动

怎么把datagridview 里的数据导出到一个excel里?