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”,有兴趣的可以实践一下。