1. 使用 OLEDB 提供程序(适用于 .xls 和 .xlsx):
使用 ADO.NET 中的 OLEDB 提供程序可以读取 Excel 文件。这种方法适用于 .xls 和 .xlsx 文件。
using System.Data.OleDb;
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YourExcelFile.xlsx;Extended Properties='Excel 12.0'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
// 读取数据
}
}
2. 使用 EPPlus 库(适用于 .xlsx):
EPPlus 是一个开源库,专门用于读写 Excel 文件,支持 .xlsx 格式。
using OfficeOpenXml;
using (var package = new ExcelPackage(new FileInfo("YourExcelFile.xlsx")))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
for (int row = 1; row <= worksheet.Dimension.Rows; row++)
{
for (int col = 1; col <= worksheet.Dimension.Columns; col++)
{
var cellValue = worksheet.Cells[row, col].Value;
// 处理单元格数据
}
}
}
3. 使用 Microsoft.Office.Interop.Excel 库(适用于 .xls 和 .xlsx):
Microsoft.Office.Interop.Excel 库是官方提供的用于与 Excel 交互的库,适用于 .xls 和 .xlsx 文件。
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open("YourExcelFile.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1];
for (int row = 1; row <= worksheet.UsedRange.Rows.Count; row++)
{
for (int col = 1; col <= worksheet.UsedRange.Columns.Count; col++)
{
var cellValue = ((Excel.Range)worksheet.Cells[row, col]).Value;
// 处理单元格数据
}
}
workbook.Close();
excelApp.Quit();
请注意,使用 Microsoft.Office.Interop.Excel 库时,需要确保系统上已安装 Excel。另外,使用 EPPlus 库时,需要通过 NuGet 包管理器安装 EPPlus。选择适合你需求的方法,并根据实际情况进行调整。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6374/C#