zoukankan      html  css  js  c++  java
  • C#导出Excel,并且设置Excel单元格格式,合并单元格.

    注:要添加COM组件 Microsoft Excel 11.0 Object Library  引用。

    具体代码如下:

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Data.SqlClient;

    using Excel;

    using System.Reflection;

    using System.Data;

    using System.Data.OleDb;

    namespace RecruitmentReport

    {

        classdoExcel

        {

            enumColumnName {A1=1,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1}

            /// <summary>

            /// 导出到Execl

            /// </summary>

            /// <param name="dt">数据集</param>

            /// <param name="strSheetName">工作部名称</param>

            /// <param name="pathloading">保存路径</param>

            /// <param name="title">标题名</param>

            publicvoid doExport(DataSet dt, string strSheetName, string pathloading, string title)

            {

     

                int columnIndex = dt.Tables[0].Columns.Count;

                string cName =((ColumnName)columnIndex).ToString();

                Excel.Application excel = new Excel.Application();  //Execl的操作类

                Excel.Workbook bookDest =(Excel.Workbook)excel.Workbooks.Add(Missing.Value);

                Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet   

                sheetDest.Name = strSheetName;

                for (int i = bookDest.Worksheets.Count; i >1; i--)

                {

                    Worksheet wt = (Worksheet)bookDest.Worksheets[i]; 

                    if (wt.Name != strSheetName)

                    {

                        wt.Delete();

                    }

                }

                int rowIndex = 2;

                int colIndex = 0;

                Range rngRow = (Excel.Range)sheetDest.Columns[1, Type.Missing];

                rngRow.UseStandardWidth = 70;

                Range rngA = (Range)sheetDest.Columns["A", Type.Missing];//设置单元格格式

                rngA.NumberFormatLocal = "@";//字符型格式

                Range rngJ = (Range)sheetDest.Columns["J", Type.Missing];

                rngJ.NumberFormatLocal = "@";

                Range rngQ = (Range)sheetDest.Columns["Q", Type.Missing];

                rngQ.NumberFormatLocal = "@";

                Range rngE = (Range)sheetDest.Columns["E", Type.Missing];

                rngE.NumberFormatLocal = @"yyyy-mm-dd";//日期型格式

                sheetDest.get_Range("A1", cName).Merge(sheetDest.get_Range("A1", cName).MergeCells);//合并单元格

                excel.Application.Workbooks.Add(true);

                try

                {

                    Range rngfirst = (Excel.Range)sheetDest.Cells[1, 1];

                    sheetDest.Cells[1, 1] = title + System.DateTime.Now.Month.ToString().PadLeft(2, '0') + System.DateTime.Now.Day.ToString().PadLeft(2, '0') + System.DateTime.Now.Year.ToString();

                    rngfirst.Font.Size = 14;

                    rngfirst.Font.Name = "Calibri";//设置单元格字体

                    rngfirst.RowHeight = 18;

                    rngfirst.HorizontalAlignment = XlHAlign.xlHAlignCenter;

                    rngfirst.Font.Bold = true;

                    rngfirst.Borders.LineStyle = XlLineStyle.xlContinuous;//设置单元格边框

                    foreach (DataColumn col in dt.Tables[0].Columns)

                    {

                     

                            colIndex++;

                            Range rng = (Excel.Range)sheetDest.Cells[2, colIndex];

                           

                                sheetDest.Cells[2, colIndex] = col.ColumnName;//Execl中的第一列把DataTable的列名先导进去

                                rng.Font.Name = "Calibri";

                                rng.Font.Size = 11;

                                rng.Font.Bold = true;

                                rng.Font.Color = ConsoleColor.Blue;

                                rng.HorizontalAlignment = XlHAlign.xlHAlignCenter;

                                rng.RowHeight = 15;

                                rng.Borders.LineStyle = XlLineStyle.xlContinuous;

                                rng.ColumnWidth = 15.5;

                         //   sheetDest.Range[1, colIndex].Font.Bold = false;

                    }

                    //导入数据行

                    foreach (DataRow row in dt.Tables[0].Rows)

                    {

                        rowIndex++;

                        colIndex = 0;

                        foreach (DataColumn col in dt.Tables[0].Columns)

                        {

                                   colIndex++;

                                    sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();

                                    Range rng01 = (Excel.Range)sheetDest.Cells[rowIndex, colIndex];

                                    rng01.HorizontalAlignment = XlHAlign.xlHAlignCenter;

                                    rng01.Borders.LineStyle = XlLineStyle.xlContinuous;

                                    rng01.RowHeight = 15;

                                    rng01.Font.Name = "Calibri";

                                    rng01.Font.Size = 11;

                            }   

                    } 

                }

                catch  { thrownewException(); }

                bookDest.Saved = true;

                bookDest.SaveCopyAs(pathloading);//保存

                excel.Quit();

                excel = null;

                GC.Collect();//垃圾回收   

            }

       }

    }

     

    http://hi.baidu.com/jimpanf/item/6773171847b46e14e2f98637

  • 相关阅读:
    oracle日志总结
    UIScrollView,contentOffset,contentInsert的各自特点和区别?
    js动态增加表格
    判断某个对象是不是DOM对象
    IOS 中frame与bounds的区别
    删除重复项,只取其中一条数据
    NSBundle
    React
    HTML5 postMessage 和 onmessage API 详解
    SonarQube
  • 原文地址:https://www.cnblogs.com/y0umer/p/3838926.html
Copyright © 2011-2022 走看看