zoukankan      html  css  js  c++  java
  • 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;
                 } 
    本博客有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
  • 相关阅读:
    探索c#之Async、Await剖析
    探索C#之布隆过滤器(Bloom filter)
    探索C#之虚拟桶分片
    刷新本地的DNS缓存数据
    php取整函数ceil,floor,round,intval函数的区别
    这样顶级人生规划 ,想不成功都难
    全篇干货,10分钟带你读透《参与感》
    iOS审核秘籍】提审资源检查大法
    php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组
    RDS MySQL 连接数满情况的处理
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/9328290.html
Copyright © 2011-2022 走看看