Excel數(shù)據(jù)處理利器:C#中三款熱門開源類庫(kù)推薦及實(shí)例代碼解析
在C#中有一些優(yōu)秀的開源Excel處理類庫(kù),以下是其中一些熱門的類庫(kù):
EPPlus:
功能: EPPlus是一個(gè)用于處理Excel文件的功能強(qiáng)大且易于使用的開源庫(kù)。它支持Excel 2007及以上版本(.xlsx格式)。
適用范圍: 適用于創(chuàng)建、讀取和編輯Excel文件,支持圖表、樣式、公式等高級(jí)功能。
下載地址: EPPlus GitHub
實(shí)例代碼:
using OfficeOpenXml;
// 數(shù)據(jù)導(dǎo)出到Excel
using (var package = new ExcelPackage())
{
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells["A1"].Value = "Hello";
worksheet.Cells["A2"].Value = "World";
package.SaveAs(new FileInfo("output.xlsx"));
}
// 從Excel導(dǎo)入數(shù)據(jù)
using (var package = new ExcelPackage(new FileInfo("input.xlsx")))
{
var worksheet = package.Workbook.Worksheets[0];
var value1 = worksheet.Cells["A1"].Value.ToString();
var value2 = worksheet.Cells["A2"].Value.ToString();
Console.WriteLine(value1 + " " + value2);
}
NPOI:
功能: NPOI是一個(gè).NET實(shí)現(xiàn)的開源類庫(kù),支持Excel、Word和PowerPoint文件的讀寫。
適用范圍: 適用于處理多種Office文檔格式,包括Excel。
下載地址: NPOI GitHub
實(shí)例代碼:
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
// 數(shù)據(jù)導(dǎo)出到Excel
IWorkbook workbook = new XSSFWorkbook(); // 或者 new HSSFWorkbook(),取決于Excel版本
ISheet sheet = workbook.CreateSheet("Sheet1");
sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello");
sheet.CreateRow(1).CreateCell(0).SetCellValue("World");
using (var fs = new FileStream("output.xlsx", FileMode.Create, FileAccess.Write))
{
workbook.Write(fs);
}
// 從Excel導(dǎo)入數(shù)據(jù)
using (var fs = new FileStream("input.xlsx", FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = WorkbookFactory.Create(fs);
ISheet sheet = workbook.GetSheetAt(0);
var value1 = sheet.GetRow(0).GetCell(0).ToString();
var value2 = sheet.GetRow(1).GetCell(0).ToString();
Console.WriteLine(value1 + " " + value2);
}
ClosedXML:
功能: ClosedXML是一個(gè)簡(jiǎn)單的開源庫(kù),用于在.NET應(yīng)用程序中創(chuàng)建和處理Excel文件。
適用范圍: 適用于創(chuàng)建、讀取和編輯Excel文件,提供簡(jiǎn)潔的API。
下載地址: ClosedXML GitHub
實(shí)例代碼:
using ClosedXML.Excel;
// 數(shù)據(jù)導(dǎo)出到Excel
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Sheet1");
worksheet.Cell("A1").Value = "Hello";
worksheet.Cell("A2").Value = "World";
workbook.SaveAs("output.xlsx");
}
// 從Excel導(dǎo)入數(shù)據(jù)
using (var workbook = new XLWorkbook("input.xlsx"))
{
var worksheet = workbook.Worksheet(1);
var value1 = worksheet.Cell("A1").Value.ToString();
var value2 = worksheet.Cell("A2").Value.ToString();
Console.WriteLine(value1 + " " + value2);
}
這些類庫(kù)都提供了豐富的功能,你可以根據(jù)項(xiàng)目的需求選擇合適的類庫(kù)。以上示例代碼中的注釋是為了說(shuō)明基本功能,實(shí)際應(yīng)用中你可能需要根據(jù)業(yè)務(wù)需求進(jìn)行更復(fù)雜的操作。