C# 中Excel导出,可以自由设置导出的excel格式

Excel导出,不管在java,C#等后台语言,或者是javascrit,jquery等脚本语言,有很多种方式都可以将查出的数据导成excel的格式。我这次是从公司的一个同事那里学来的一个方法。是有关C#的winform的程序的。我们在实际应用中,是将导出的数据进行了复杂的处理,进行了合并单元格,处理单元格的边框,excel显示的字体,颜色,样式等等,都在导出excel的过程中用到了,而且导出的速度很快。下面我就这个方法和大家分享一下:

            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); //创建excel
            System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; //线程
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); //语言
            Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
            Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
            //单元格属性
            Microsoft.Office.Interop.Excel.Range range1;
            Microsoft.Office.Interop.Excel.Range range2;

            worksheet.Name = "测试";
            worksheet.Cells[3, 3] = "列名1";
            worksheet.Cells[3, 4] = "列名2";

            //给要设置的单元格定位属性
            range1 = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[3, 3]; //定位单元格
            range2 = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[3, 4]; //定位单元格
            range1.ColumnWidth = 30;    //设置单元格的列的宽度
            range2.ColumnWidth = 35;
            range1.Font.Size = 12;     //设置单元格的字体的大小
            range2.Font.Size = 12;

            range1.Borders.Weight = XlBorderWeight.xlMedium;// 设置边框粗细
            range2.Borders.Weight = XlBorderWeight.xlMedium;

            range1.HorizontalAlignment = XlHAlign.xlHAlignCenter;  //excel单元格的内容居中(可以设置靠左,居中,靠右)
            range2.HorizontalAlignment = XlHAlign.xlHAlignCenter;

            range1.Font.Bold = true; //excel设置字体加粗格式
            range2.Font.Bold = true;


            //excel合并单元格
            Microsoft.Office.Interop.Excel.Range range;
            range = worksheet.get_Range(worksheet.Cells[4, 3], worksheet.Cells[9, 3]); 
            range.MergeCells = true;

            //worksheet.ClearArrows();
            xlApp.Visible = true; //导出exel(主要靠这句),将要导出的excel显示出来
            xlApp.ActiveWindow.DisplayGridlines = false; //消除excel的边框线

使用上面的方法需要导入excel的一个dll包,名为“icrosoft.Office.Interop.Excel.dll”,有兴趣的可以实践一下。