1. 产品
  2.   电子表格
  3.   .NET
  4.   ClosedXML
 
  

用于操作 Excel 电子表格的开源 .NET 库

ClosedXML 允许您读取、操作和编写 Microsoft Excel 文档

ClosedXML 是一个开源 C# API,用于读取、操作和编写 Microsoft Excel 2007+(.xlsx、.xlsm)文档。该 API 允许您在不使用 Excel 应用程序的情况下创建 Excel 文件,并使用增强功能读取文件。

使用 API,您可以通过使用背景颜色和单元格边框来设置工作簿的样式。您可以在 Excel 中添加、删除和移动工作表以及管理数据类型。

Previous Next

ClosedXML 入门

安装 ClosedXML 的推荐方法是从 NuGet,请使用以下命令以加快安装速度。

从 NuGet 安装 ClosedXML

 Install-Package ClosedXML

使用 C# 免费创建新工作簿

CLussXML允许C#。ET开发者创建新的优秀工作表。 您可以使用XLWorkbook()方法创建一个空白菜谱。 图书馆包含了管理您的工作表文档的几个重要特点。 它允许在烹饪书中添加工作表、添加细胞和列、将样式应用到行和列、删除不需要的细胞和更多。

创建新的库克手册


using (var workbook = new XLWorkbook())
{
    var worksheet = workbook.Worksheets.Add("Sample Sheet");
    worksheet.Cell("A1").Value = "Hello World!";
    worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
    workbook.SaveAs("HelloWorld.xlsx");
}

使用 C# 设置 Excel 表格样式

开放源代码闭XMLAPI允许软件开发者将样式应用到只有几行C#代码的优秀页面上。 API具有调整、边境、填充、字体、数字格式、风格行、列等特性。 图书馆还允许用户根据自己的需要改变设计。

如何通过C#图书馆将Styles应用到Excel表格


            var path = Program.BaseCreatedDirectory;
            new StyleFont().Create(Path.Combine(path, "styleFont.xlsx"));
            new StyleFill().Create(Path.Combine(path, "styleFill.xlsx"));
            new StyleBorder().Create(Path.Combine(path, "styleBorder.xlsx"));
            new StyleAlignment().Create(Path.Combine(path, "styleAlignment.xlsx"));
            new StyleNumberFormat().Create(Path.Combine(path, "styleNumberFormat.xlsx"));
            new StyleIncludeQuotePrefix().Create(Path.Combine(path, "styleIncludeQuotePrefix.xlsx"));

使用 C# 在 Excel 中使用自动过滤器

封闭的XML库包括完全支持应用过滤器在您的优秀工作表中。 为了方便用户、图书馆包括各种过滤器。 您可以将过滤器应用到特定的范围、将过滤器应用到值并创建自己的自定义过滤器。

如何通过C#在Excel中应用自动滤波器

public class DynamicAutoFilter : IXLExample
    {
        public void Create(string filePath)
        {
            var wb = new XLWorkbook();
            IXLWorksheet ws;
            #region Single Column Numbers
            String singleColumnNumbers = "Single Column Numbers";
            ws = wb.Worksheets.Add(singleColumnNumbers);
            // Add a bunch of numbers to filter
            ws.Cell("A1").SetValue("Numbers")
                         .CellBelow().SetValue(2)
                         .CellBelow().SetValue(3)
                         .CellBelow().SetValue(3)
                         .CellBelow().SetValue(5)
                         .CellBelow().SetValue(1)
                         .CellBelow().SetValue(4);
            // Add filters
            ws.RangeUsed().SetAutoFilter().Column(1).AboveAverage();
            // Sort the filtered list
            //ws.AutoFilter.Sort(1);
            #endregion
            #region Multi Column
            String multiColumn = "Multi Column";
            ws = wb.Worksheets.Add(multiColumn);
            ws.Cell("A1").SetValue("First")
             .CellBelow().SetValue("B")
             .CellBelow().SetValue("C")
             .CellBelow().SetValue("C")
             .CellBelow().SetValue("E")
             .CellBelow().SetValue("A")
             .CellBelow().SetValue("D");
            ws.Cell("B1").SetValue("Numbers")
                         .CellBelow().SetValue(2)
                         .CellBelow().SetValue(3)
                         .CellBelow().SetValue(3)
                         .CellBelow().SetValue(5)
                         .CellBelow().SetValue(1)
                         .CellBelow().SetValue(4);
            ws.Cell("C1").SetValue("Strings")
             .CellBelow().SetValue("B")
             .CellBelow().SetValue("C")
             .CellBelow().SetValue("C")
             .CellBelow().SetValue("E")
             .CellBelow().SetValue("A")
             .CellBelow().SetValue("D");
            // Add filters
            ws.RangeUsed().SetAutoFilter().Column(2).BelowAverage();
            // Sort the filtered list
            //ws.AutoFilter.Sort(3);
            #endregion
            using (var ms = new MemoryStream())
            {
                wb.SaveAs(ms);
                var workbook = new XLWorkbook(ms);
                #region Single Column Numbers
                //workbook.Worksheet(singleColumnNumbers).AutoFilter.Sort(1, XLSortOrder.Descending);
                #endregion
                #region Multi Column 
                //workbook.Worksheet(multiColumn).AutoFilter.Sort(3, XLSortOrder.Descending);
                #endregion
                workbook.SaveAs(filePath);
                ms.Close();
            }
        }
    }
 中国人