Tạo tệp Excel trong C# mà không cần cài đặt Microsoft Office

Tạo tệp Excel trong C# mà không cần cài đặt Microsoft Office
Tạo tệp Excel trong C# mà không cần cài đặt Microsoft Office

Tạo tệp Excel trong C# một cách liền mạch

Tạo tệp Excel (.XLS và .XLSX) trong C# có thể là một yêu cầu quan trọng đối với nhiều ứng dụng. Tuy nhiên, việc dựa vào cài đặt Microsoft Office trên máy chủ hoặc máy khách có thể không thực tế và cồng kềnh.

May mắn thay, có sẵn các thư viện và công cụ mạnh mẽ cho phép các nhà phát triển tạo bảng tính Excel theo chương trình trong C# mà không cần Microsoft Office. Bài viết này khám phá các phương pháp và thư viện khác nhau để đạt được điều này một cách hiệu quả.

Yêu cầu Sự miêu tả
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; Đặt bối cảnh giấy phép cho EPPlus thành mục đích sử dụng phi thương mại.
var worksheet = package.Workbook.Worksheets.Add("Sheet1"); Tạo một bảng tính mới có tên "Sheet1" trong gói Excel bằng EPPlus.
worksheet.Cells[1, 1].Value = "Hello"; Đặt giá trị của ô ở hàng 1, cột 1 thành "Xin chào" bằng EPPlus.
IWorkbook workbook = new XSSFWorkbook(); Khởi tạo phiên bản sổ làm việc mới để tạo tệp .XLSX bằng NPOI.
ISheet sheet = workbook.CreateSheet("Sheet1"); Tạo một trang tính mới có tên "Trang tính 1" trong sổ làm việc bằng NPOI.
IRow row = sheet.CreateRow(0); Tạo một hàng mới tại chỉ mục 0 trong trang tính bằng NPOI.
row.CreateCell(0).SetCellValue("Hello"); Đặt giá trị của ô ở hàng 0, cột 0 thành "Xin chào" bằng NPOI.

Hiểu cách tạo tệp Excel trong C#

Các tập lệnh được cung cấp ở trên minh họa cách tạo tệp Excel (.XLS và .XLSX) trong C# mà không cần cài đặt Microsoft Office bằng cách sử dụng hai thư viện phổ biến: EPPlus và NPOI. Tập lệnh đầu tiên tận dụng thư viện EPPlus. Nó bắt đầu bằng cách đặt bối cảnh giấy phép cho EPPlus thành mục đích sử dụng phi thương mại bằng lệnh ExcelPackage.LicenseContext = LicenseContext.NonCommercial;. Điều này đảm bảo tuân thủ các điều khoản cấp phép EPPlus. Tiếp theo, nó tạo một phiên bản gói Excel mới bằng cách sử dụng using (var package = new ExcelPackage()), và thêm một bảng tính mới có tên "Sheet1" bằng cách sử dụng var worksheet = package.Workbook.Worksheets.Add("Sheet1");. Dữ liệu được thêm vào các ô bằng cách đặt trực tiếp các giá trị của chúng, ví dụ: worksheet.Cells[1, 1].Value = "Hello"; gán giá trị "Xin chào" cho ô đầu tiên ở hàng đầu tiên. Sau đó tập tin sẽ được lưu vào đĩa với package.SaveAs(new FileInfo("example.xlsx"));, hoàn tất quá trình tạo file Excel.

Tập lệnh thứ hai sử dụng thư viện NPOI để tạo tệp Excel. Nó bắt đầu bằng cách khởi tạo một phiên bản sổ làm việc mới để tạo các tệp .XLSX với IWorkbook workbook = new XSSFWorkbook();. Một trang tính mới có tên "Trang tính 1" được tạo trong sổ làm việc bằng cách sử dụng ISheet sheet = workbook.CreateSheet("Sheet1");. Các hàng và ô được tạo và điền dữ liệu bằng cách gọi IRow row = sheet.CreateRow(0);số 8, tương ứng. Sổ làm việc đã tạo sau đó được ghi vào luồng tệp và được lưu vào đĩa bằng cách sử dụng FileStream bọc trong một using tuyên bố về quản lý tài nguyên thích hợp. Cuối cùng, Console.WriteLine("Excel file created successfully!"); xuất thông báo thành công tới bàn điều khiển. Các tập lệnh này cho thấy các thư viện này mạnh mẽ và linh hoạt như thế nào trong việc tạo tệp Excel trong C# mà không cần cài đặt Microsoft Office.

Tạo tệp Excel bằng EPPlus trong C#

Tập lệnh này minh họa việc tạo tệp Excel bằng thư viện EPPlus trong C#.

using System;
using System.IO;
using OfficeOpenXml;

namespace ExcelCreationExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");
                worksheet.Cells[1, 1].Value = "Hello";
                worksheet.Cells[1, 2].Value = "World";
                var file = new FileInfo("example.xlsx");
                package.SaveAs(file);
                Console.WriteLine("Excel file created successfully!");
            }
        }
    }
}

Tạo tệp Excel bằng NPOI trong C#

Tập lệnh này cho biết cách sử dụng thư viện NPOI để tạo tệp Excel trong C#.

using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

namespace ExcelCreationExample
{
    class Program
    {
        static void Main(string[] args)
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet sheet = workbook.CreateSheet("Sheet1");
            IRow row = sheet.CreateRow(0);
            row.CreateCell(0).SetCellValue("Hello");
            row.CreateCell(1).SetCellValue("World");
            using (var file = new FileStream("example.xlsx", FileMode.Create, FileAccess.Write))
            {
                workbook.Write(file);
            }
            Console.WriteLine("Excel file created successfully!");
        }
    }
}

Tạo tệp Excel bằng CloseXML trong C#

Một thư viện tuyệt vời khác để tạo tệp Excel trong C# mà không yêu cầu Microsoft Office là ClosedXML. ClosedXML là thư viện .NET để đọc, thao tác và ghi các tệp Excel 2007+ (.XLSX). Nó trực quan và dễ sử dụng, khiến nó được các nhà phát triển yêu thích. ClosedXML cho phép bạn tạo các tệp Excel với các tính năng phong phú, chẳng hạn như định dạng ô, thêm công thức và tạo bảng. Để bắt đầu sử dụng ClosedXML, bạn cần cài đặt nó qua NuGet. Sau khi thiết lập, bạn có thể tạo sổ làm việc Excel mới chỉ bằng vài dòng mã. Ví dụ: bạn bắt đầu một sổ làm việc mới và thêm một trang tính có tên "Trang tính 1" bằng cách sử dụng var workbook = new XLWorkbook();var worksheet = workbook.Worksheets.Add("Sheet1"); lệnh.

Dữ liệu có thể được thêm vào ô bằng các lệnh như worksheet.Cell(1, 1).Value = "Hello";và bạn có thể định dạng ô, thêm đường viền và đặt kiểu phông chữ bằng các lệnh đơn giản, dễ đọc. Khi dữ liệu của bạn được đặt, bạn lưu sổ làm việc vào một tệp bằng cách sử dụng workbook.SaveAs("example.xlsx");. ClosedXML hỗ trợ nhiều tính năng, bao gồm bảng tổng hợp, định dạng có điều kiện và biểu đồ, khiến nó trở thành công cụ mạnh mẽ để tạo các tài liệu Excel phức tạp theo chương trình. Tính linh hoạt này đảm bảo rằng các nhà phát triển có thể tạo các tệp Excel phù hợp với nhu cầu cụ thể của họ mà không cần dựa vào cài đặt Microsoft Office, từ đó đơn giản hóa việc triển khai và phân phối ứng dụng.

Câu hỏi thường gặp về tạo tệp Excel trong C#

  1. Làm cách nào để cài đặt EPPlus trong dự án của tôi?
  2. Bạn có thể cài đặt EPPlus bằng Trình quản lý gói NuGet bằng lệnh Install-Package EPPlus.
  3. Sự khác biệt giữa EPPlus và NPOI là gì?
  4. EPPlus được biết đến vì tính dễ sử dụng và chỉ hỗ trợ các tệp .XLSX, trong khi NPOI hỗ trợ cả hai định dạng .XLS và .XLSX nhưng có đường cong học tập dốc hơn.
  5. ClosedXML có thể xử lý các tệp Excel lớn một cách hiệu quả không?
  6. Có, ClosedXML có thể xử lý các tệp Excel lớn nhưng hiệu suất có thể thay đổi tùy theo mức độ phức tạp của dữ liệu và các thao tác được thực hiện.
  7. Có thể tạo biểu đồ trong tệp Excel bằng ClosedXML không?
  8. Có, ClosedXML hỗ trợ tạo nhiều loại biểu đồ khác nhau trong tệp Excel.
  9. Làm cách nào để định dạng ô bằng ClosedXML?
  10. Bạn có thể định dạng ô bằng các lệnh như worksheet.Cell(1, 1).Style.Font.Bold = true; để đặt phông chữ thành đậm.
  11. Tôi có thể thêm công thức vào ô bằng EPPlus không?
  12. Có, bạn có thể thêm công thức vào ô trong EPPlus bằng các lệnh như worksheet.Cells[1, 1].Formula = "SUM(A1:A10)";.
  13. NPOI hỗ trợ những định dạng tệp nào?
  14. NPOI hỗ trợ cả định dạng tệp .XLS và .XLSX.
  15. Làm cách nào để lưu tệp Excel bằng EPPlus?
  16. Bạn có thể lưu tệp Excel bằng lệnh package.SaveAs(new FileInfo("example.xlsx"));.
  17. ClosedXML có được sử dụng miễn phí không?
  18. Có, ClosedXML được sử dụng miễn phí và được cấp phép theo Giấy phép MIT.

Suy nghĩ cuối cùng về việc tạo tệp Excel trong C#

Tạo tệp Excel bằng C# mà không cần cài đặt Microsoft Office là một phương pháp mang tính thực tế cao dành cho các nhà phát triển. Bằng cách sử dụng các thư viện như EPPlus, NPOIClosedXML, bạn có thể tạo bảng tính Excel một cách dễ dàng, cung cấp nhiều tính năng và tùy chọn tùy chỉnh. Những giải pháp này không chỉ đơn giản hóa quá trình phát triển mà còn đảm bảo rằng các ứng dụng của bạn có tính di động cao hơn và dễ triển khai hơn trên các môi trường khác nhau.