• 万能导出数据到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;
                }
            }
    }

  • 相关阅读:
    html调用php
    MySQL安装下载
    MySQL默认安装下载
    MySQL安装下载
    搭建php环境
    面试官:聊聊对Vue.js框架的理解
    TCP、UDP、HTTP、SOCKET之间的区别与联系
    HTTP/1、HTTP/2、HTTP/3
    git教程
    从jQuery到Serverless,前端十四年挖了多少坑?
  • 原文地址:https://www.cnblogs.com/jcomet/p/1242780.html
Copyright © 2020-2023  润新知