最近公司要批次产出报表,是利用控制台应用程序操作Excel,并设置各种样式。
在网上搜索此类的例子,但是感觉一些用法都已经发生了变化,我用的.net 4.0 ,Microsoft.Office.Interop.Excel 为14.0.0.0,这些操作过程是我在一个一个试验出来的,感觉学到了很多东西,在此和大家分享一下对Excel的基本用法用法,适合没做过此类功能的同仁学习了...
1:关于引用
先添加参考,再引用
using Excel = Microsoft.Office.Interop.Excel;
2:初始化应用类
Excel.Range rRang;//用此矩形来操作样式 Excel.Application xls_exp = new Excel.Application(); Excel._Workbook xls_book = xls_exp.Workbooks.Add(Missing.Value); Excel._Worksheet xls_sheet = (Excel._Worksheet)xls_book.ActiveSheet;//工作表
3:工作表的整体样式的设定
xls_sheet.Cells.HorizontalAlignment = Excel.Constants.xlLeft;//左對齊 xls_sheet.Cells.Font.Name = "新細明體"; xls_sheet.Cells.Font.Size = 10; xls_sheet.Cells.WrapText = true;//自動換行 xls_sheet.Cells.EntireRow.AutoFit();//行高根据内容自动调整
4:设置列宽
((Excel.Range)xls_sheet.Cells[1, "A"]).ColumnWidth = 10.75;
5:合并单元格,并赋值
rRang = xls_sheet.Range[xls_sheet.Cells[1, 1], xls_sheet.Cells[3, 3]]; rRang.Merge(Missing.Value); rRang.Value = "XXXXXX"; rRang.Cells.HorizontalAlignment = Excel.Constants.xlCenter;//居中
6:为单个单元格赋值,并为一个矩形设置为中等宽度的边框
xls_sheet.Cells[1, "D"] = "主旨:"; rRang = xls_sheet.Range[xls_sheet.Cells[1, "E"], xls_sheet.Cells[1, "R"]]; rRang.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).Weight = Excel.XlBorderWeight.xlMedium;
7:设置字体大小和粗体
rRang = xls_sheet.Range[xls_sheet.Cells[1, 1], xls_sheet.Cells[3, "E"]]; rRang.Columns.Font.Size = 12; rRang.Columns.Font.Bold = true;
8:设置单元格颜色和字体颜色(Color 为引用的System.Drawing)
rRang = xls_sheet.Range[xls_sheet.Cells[4, "N"], xls_sheet.Cells[ITotalCount + 5, "P"]]; rRang.Columns.Interior.Color = Color.LightGoldenrodYellow; rRang = xls_sheet.Range[xls_sheet.Cells[4, "I"], xls_sheet.Cells[ITotalCount+5, "J"]]; rRang.Columns.Font.Color = Color.Red;
9:保存文件,关闭Execl
if (!Directory.Exists(strPath)) { Directory.CreateDirectory(strPath); } strPath = strPath + strFileName; if (File.Exists(strPath)) { File.Delete(strPath); } xls_sheet.Name = "XXXXXX"; xls_sheet.SaveAs(strPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); xls_exp.ActiveWorkbook.Close(false, strFileName, null); xls_exp.Quit(); xls_exp = null;
至此,基本上Execl的操作是OK的,通过这些样式的设置,我已经做出了很漂亮的Execl文件
下面附缩小版的设计图一张,因为涉及公司机密,这些资料会看不清