一、ClosedXML介紹
1.簡單的說ClosedXML就是一個類庫,主要用於開發Office組件。它也是基於OpenXML,但在它的基礎上做了很多封裝,比OpenXML開發更加容易、方便;
2.ClosedXML是以OpenXML為基礎的,所以在實際項目應用中,除了要添加對ClosedXML.dll應用,還必須添加DocumentFormat.OpenXml.dll的應用;
3.ClosedXML.dll目前有.NET3.5和.NET4.0兩個版本,可以去官網下載:http://closedxml.codeplex.com;
4.ClosedXML開發不需要Office組件的支持,可以擺脫對Office組件的依賴;
二、ClosedXML開發實例
1.生成一個新的Excel,並對其進行插入數據,設置格式等
public class Program { static void Main(string[] args) { string path = @"F:\Test\OpenXMLTest\test.xlsx"; if (!Directory.Exists(@"F:\Test\OpenXMLTest")) { Directory.CreateDirectory(@"F:\Test\OpenXMLTest"); } if (File.Exists(path)) { File.Delete(path); } GetWorkBook(path); } private static void GetWorkBook(string strFile) { string[,] data = new string[,] { { "年級", "班級", "姓名", "學號" }, { "八年級", "一班", "LiuHui", "080831" }, { "八年級", "二班", "LIYang", "080832" }, { "九年級", "一班", "WangHui", "080833" }, { "八年級", "三班", "LiMing", "080834" } }; XLWorkbook workBook = new XLWorkbook(); IXLWorksheet workSheet = workBook.AddWorksheet("測試"); IXLStyle style = workSheet.Style; style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; style.Alignment.Vertical = XLAlignmentVerticalValues.Bottom; //設置底部邊框及顏色 style.Border.BottomBorder = XLBorderStyleValues.MediumDashDot; style.Border.BottomBorderColor = XLColor.Red; //設置頂部邊框及顏色 style.Border.TopBorder = XLBorderStyleValues.SlantDashDot; style.Border.TopBorderColor = XLColor.Black; //設置左部邊框及顏色 style.Border.LeftBorder = XLBorderStyleValues.MediumDashDotDot; style.Border.LeftBorderColor = XLColor.Green; //設置右部邊框及顏色 style.Border.RightBorder = XLBorderStyleValues.Hair; style.Border.RightBorderColor = XLColor.Yellow; style.Font.Bold = true; style.Font.FontColor = XLColor.Red; style.Font.FontName = "微軟雅黑"; style.Font.FontSize = 12; style.Font.Italic = true; style.Font.Shadow = false; style.Font.Underline = XLFontUnderlineValues.Double; //設置A1,B1的字體顏色為灰色 workSheet.Range("A1", "B1").Style.Font.FontColor = XLColor.Gray; //把第5行第1列和第2列合並單元格 workSheet.Range(5, 1, 5, 2).Merge(); //設置第5行第1列和第2列內容左對齊 workSheet.Range(5, 1, 5, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left; //設置第二列的寬度 workSheet.Column(2).Width = 30; //設置第4到7列的寬度 workSheet.Columns(4, 7).Width = 40; for (int i = 0; i < data.GetLength(0);i++ ) { for (int j = 0; j < data.GetLength(1);j++ ) { workSheet.Cell(i + 1, j + 1).Value = data.GetValue(i, j); } } workBook.SaveAs(strFile); } }