zoukankan      html  css  js  c++  java
  • 万能导出数据到Excel

    class CommanPrint
       {
            /// <summary>
            /// 导出Excel

             /// 版权所有 : 光之翼 QQ:272912705         www.hi.baidu.com/jcomet

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

  • 相关阅读:
    在ireport中使用checkbox
    OpenCV-Python教程(9、使用霍夫变换检测直线)
    编程挑战(6)
    [置顶] Guava学习之Immutable集合
    mongodb在PHP下的应用学习笔记
    通过Camera进行拍照
    无法删除 C_PAN.GHO: 访问被拒绝 解决办法
    使用POI生成Excel报表
    debian下使用siege进行压力测试
    jodd-servlet工具集锦
  • 原文地址:https://www.cnblogs.com/benzhang/p/1458716.html
Copyright © 2011-2022 走看看