欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#高效率導出多維表頭excel的實例代碼

 更新時間:2013年11月01日 16:01:49   作者:  
這篇文章介紹了c#高效率導出多維表頭excel的實例代碼,有需要的朋友可以參考一下

復制代碼 代碼如下:

[DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
        private void ExportToExcel(string fielName)
        {
            //實例化一個Excel.Application對象   
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

            try
            {
                if (dgv_Result.DataSource == null)
                    return;
                if (dgv_Result.Rows.Count == 0)
                    return;


                //新增加一個工作簿,Workbook是直接保存,不會彈出保存對話框,加上Application會彈出保存對話框,值為false會報錯   
                Microsoft.Office.Interop.Excel.Workbook xlBook = excel.Workbooks.Add(true);

                //1.添加表頭
                excel.Cells[1, 1] = tyclass;
                for (int i = 0; i < dgv_Result.Columns.Count; i++)
                {

                    excel.Cells[2, i + 1] = dgv_Result.Columns[i].Name;
                }


                #region 2.實現Excel多維表頭 采用合并單元格的方式
                Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;
                Microsoft.Office.Interop.Excel.Range excelRange = sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[1, 2]);
                Microsoft.Office.Interop.Excel.Range excelRange1 = sheet.get_Range(sheet.Cells[1, 3], sheet.Cells[1, 4]);
                Microsoft.Office.Interop.Excel.Range excelRange2 = sheet.get_Range(sheet.Cells[1,5], sheet.Cells[1, 6]);
                Microsoft.Office.Interop.Excel.Range excelRange3 = sheet.get_Range(sheet.Cells[1,7], sheet.Cells[1, 8]);
                Microsoft.Office.Interop.Excel.Range excelRange4 = sheet.get_Range(sheet.Cells[1, 2], sheet.Cells[1, 3]);
                Microsoft.Office.Interop.Excel.Range excelRange5 = sheet.get_Range(sheet.Cells[1, 6], sheet.Cells[1, 7]);
                Microsoft.Office.Interop.Excel.Range excelRange6 = sheet.get_Range(sheet.Cells[1, 4], sheet.Cells[1,5]);
                excelRange.Merge(excelRange.MergeCells);
                excelRange1.Merge(excelRange1.MergeCells);
                excelRange4.Merge(excelRange4.MergeCells);
                excelRange2.Merge(excelRange2.MergeCells);
                excelRange3.Merge(excelRange3.MergeCells);
                excelRange5.Merge(excelRange5.MergeCells);
                excelRange6.Merge(excelRange6.MergeCells);
                Microsoft.Office.Interop.Excel.Range columnRange = sheet.get_Range("A1", "H2");   //得到  Range 范圍  A-H 表示1-8列,1-2表示跨幾行
                 columnRange.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
                 columnRange.Font.Size = 10;
                 columnRange.Font.Bold = true;

                #endregion

               
                #region 3.添加行數據,直接給Range賦值可提高效率

                 Microsoft.Office.Interop.Excel.Range range = sheet.get_Range("A3", "H" + (dgv_Result.Rows.Count + 2).ToString());   //得到  Range 范圍
                string[,] AryData = new string[dgv_Result.Rows.Count-1, dgv_Result.Columns.Count];
                for (int i = 0; i < dgv_Result.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dgv_Result.Columns.Count; j++)
                    {

                        AryData[i,j] = dgv_Result.Rows[i].Cells[j].Value.ToString();
                    }
                }
                range.Value2 = AryData;
                range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
                #endregion

                sheet.Cells.Columns.AutoFit();//設置Excel表格的  列寬
                excel.SheetsInNewWorkbook = 1;//設置Excel單元格對齊方式
                excel.DisplayAlerts = false; //設置禁止彈出保存和覆蓋的詢問提示框   
                excel.AlertBeforeOverwriting = false;
                //保存excel文件   
                xlBook.SaveAs(fielName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                MessageBox.Show("導出成功!", "提示");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "錯誤提示");
            }
            finally
            {
                IntPtr pt = new IntPtr(excel.Hwnd);
                int k = 0;
                GetWindowThreadProcessId(pt, out k);
                System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
                p.Kill();


            }

        }

相關文章

  • C#實現拆分字符串的示例詳解

    C#實現拆分字符串的示例詳解

    這篇文章主要為大家詳細介紹了C#如何分別使用正則表達式Regex.Split方法和String.Split方法實現拆分字符串,有需要的小伙伴可以參考一下
    2024-02-02
  • C#動態(tài)生成DropDownList執(zhí)行失敗原因分析

    C#動態(tài)生成DropDownList執(zhí)行失敗原因分析

    這篇文章主要介紹了C#動態(tài)生成DropDownList執(zhí)行失敗原因分析,以一個實例形式分析了C#動態(tài)生成DropDownList的相關注意要點與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Unity接入百度AI實現貨幣識別

    Unity接入百度AI實現貨幣識別

    本文主要介紹了在Unity中接入百度AI,從而實現貨幣識別,可以返回貨幣的名稱、代碼、面值、年份信息等,感興趣的可以跟隨小編學習一下
    2022-01-01
  • C#配置文件操作類分享

    C#配置文件操作類分享

    這篇文章主要分享了C#配置文件操作類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 非常實用的C#字符串操作處理類StringHelper.cs

    非常實用的C#字符串操作處理類StringHelper.cs

    這篇文章主要為大家詳細介紹了非常實用的C#字符串操作處理類StringHelper.cs,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#中AS和IS關鍵字的用法

    C#中AS和IS關鍵字的用法

    這篇文章主要介紹了C#中AS和IS關鍵字的用法的相關資料,需要的朋友可以參考下
    2016-03-03
  • C#控制鍵盤按鍵的常用方法

    C#控制鍵盤按鍵的常用方法

    這篇文章主要介紹了C#控制鍵盤按鍵的常用方法,涉及C#針對鍵盤大寫、滾動、數字的開啟與鎖定等功能,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • C#數據適配器DataAdapter

    C#數據適配器DataAdapter

    這篇文章介紹了C#中的數據適配器DataAdapter,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • SQL+C#實現獲得當前月的第一天與最后一天

    SQL+C#實現獲得當前月的第一天與最后一天

    本文分享了SQL+C#獲得當前月的第一天與最后一天的代碼實例,代碼簡潔,適合初學者參考。需要的朋友可以看下
    2016-12-12
  • c# 面試必備線程基礎知識點

    c# 面試必備線程基礎知識點

    這篇文章主要介紹了c# 面試必備線程基礎知識點,幫助大家更好的鞏固,掌握線程的基礎知識,感興趣的朋友可以了解下
    2020-11-11

最新評論