• C#导出Excel,并且设置Excel单元格格式,合并单元格


    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();//垃圾回收  

            }

       }

    }

  • 相关阅读:
    python题目:计算今天是一年当中的第多少天【多测师_王sir】【杭州多测师】
    python结合logging模块编写打印日志的装饰器+python结合time模块编写计算时间装饰器【杭州多测师】【杭州多测师_王sir】
    python常见的面试题和笔试题【杭州多测师】【杭州多测师_王sir】
    python+unittest单元测试框架失败重跑3次机制+失败3次跳过用例【杭州多测师】【杭州多测师_王sir】
    写一个装饰器当程序运行24小时后自动停止运行+对运行时间自动化计时【多测师_王sir】【杭州多测师】
    webpack 打包后代码 zip 压缩 Better
    offsetWidth、offsetHeight、clientWidth、clientHeight对比总结 Better
    vue.js3:解析xml (x2js@3.4.3 / vue@3.2.37)
    vue.js3: 数字的进制转换(vue@3.2.37)
    vue.js3:文本对比或比较(codemirror@5.65.5 / vue@3.2.37)
  • 原文地址:https://www.cnblogs.com/lucy-12/p/5162182.html
Copyright © 2020-2023  润新知