Thư viện .NET mã nguồn mở để thao tác bảng tính Excel

ClosedXML cho phép bạn đọc, thao tác và viết Tài liệu Microsoft Excel

ClosedXML là một C # API mã nguồn mở để đọc, thao tác và viết các tài liệu Microsoft Excel 2007+ (.xlsx, .xlsm). API cho phép bạn tạo tệp Excel mà không cần sử dụng ứng dụng Excel và đọc tệp bằng các tính năng nâng cao.

Sử dụng API, bạn có thể tạo kiểu cho sổ làm việc của mình bằng cách sử dụng màu nền và đường viền ô. Bạn có thể thêm, xóa và di chuyển trang tính của mình cũng như quản lý các kiểu dữ liệu bên trong excel.

Previous Next

Bắt đầu với ClosedXML

Cách được đề xuất để cài đặt ClosedXML là từ NuGet, Vui lòng sử dụng lệnh sau để cài đặt nhanh hơn.

Cài đặt ClosedXML từ NuGet

 Install-Package ClosedXML

Tạo sổ làm việc mới miễn phí bằng C #

CLosedXML cho phép các nhà phát triển C# .NET tạo ra các bảng mới. Anh có thể tạo ra một cuốn sách nấu ăn trống sử dụng phương pháp XLWorkbook () Thư viện có nhiều tính năng quan trọng để quản lý tài liệu của anh. Nó cho phép thêm các bảng trong sách nấu ăn, thêm các tế bào và các cột, áp dụng các loại hàng và các cột, xóa các tế bào không mong muốn và nhiều hơn nữa.

Tạo danh sách mới qua .NET API


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");
}

Tạo kiểu cho Trang tính Excel bằng C #

Nguồn mở cho phép các nhà phát triển phần mềm áp dụng các phong cách cho các tấm bảng xuất sắc của họ chỉ với vài dòng mã C. API được làm giàu với các tính năng phong cách bao gồm cả sự liên kết, biên giới, lấp đầy, phông chữ, định dạng số, hàng phong cách, các cột, và nhiều hơn nữa. Thư viện cũng cho phép người dùng thay đổi phong cách theo nhu cầu của họ.

Làm thế nào để áp dụng phong cách cho Excel Sheets thông qua thư viện C?


            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"));

Sử dụng Bộ lọc Tự động trong Excel bằng C #

Thư viện XML đã bao gồm hỗ trợ hoàn toàn để áp dụng các bộ lọc bên trong bảng tính xuất sắc. Thư viện có nhiều loại bộ lọc khác nhau cho sự tiện lợi của người dùng. Anh có thể áp dụng bộ lọc cho một phạm vi cụ thể, áp dụng một bộ lọc vào giá trị và tạo ra các bộ lọc tùy chỉnh của riêng mình.

Làm thế nào để áp dụng bộ lọc tự động trong Excel thông qua C?

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();
            }
        }
    }
 Tiếng Việt