码迷,mamicode.com
首页 > Windows程序 > 详细

datagridview数据导出到excel

时间:2018-07-18 13:54:11      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:books   param   span   str   catch   定义   命名   oid   port   

         /// <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

标签:books   param   span   str   catch   定义   命名   oid   port   

原文地址:https://www.cnblogs.com/lee24789229/p/9328290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!