在C#中连接Excel文件(无论是`.xls`还是`.xlsx`格式),通常不会直接使用数据库驱动的方式,而是会使用第三方库如EPPlus(用于处理`.xlsx`)或NPOI(支持`.xls`和`.xlsx`)。这里我将提供一个使用NPOI库来读取Excel文件的示例代码。
首先,你需要在你的项目中安装NPOI库。如果你使用的是NuGet包管理器,可以通过以下命令安装:
Install-Package NPOI
接下来是一个使用NPOI读取Excel文件的示例C#代码:
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; // 用于.xlsx格式
// 如果需要处理.xls格式,则还需要引用NPOI.HSSF.UserModel;
class Program
{
static void Main(string[] args)
{
// Excel文件路径
string filePath = @"C:\path\to\your\excel\file.xlsx";
// 使用FileStream打开文件
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
// 创建一个Workbook实例,根据文件类型选择相应的实现
IWorkbook workbook;
if (filePath.EndsWith(".xlsx"))
{
workbook = new XSSFWorkbook(file); // 用于处理.xlsx格式
}
// 如果需要处理.xls格式,则使用下面的代码
// else if (filePath.EndsWith(".xls"))
// {
// workbook = new HSSFWorkbook(file); // 用于处理.xls格式
// }
// 获取第一个Sheet
ISheet sheet = workbook.GetSheetAt(0);
// 遍历行和列
for (int row = 0; row <= sheet.LastRowNum; row++)
{
if (sheet.GetRow(row) != null) // null是可能的,如果没有数据
{
for (int col = 0; col < sheet.GetRow(row).LastCellNum; col++)
{
if (sheet.GetRow(row).GetCell(col) != null) // 同样检查null
{
// 根据类型读取单元格数据
Cell cell = sheet.GetRow(row).GetCell(col);
if (cell.CellType == CellType.String)
{
Console.Write(cell.StringCellValue + "\t");
}
else if (cell.CellType == CellType.Numeric)
{
Console.Write(cell.NumericCellValue + "\t");
}
// 可以继续添加其他类型的处理
}
}
Console.WriteLine(); // 换行
}
}
}
}
}
注意:
1. 示例中只处理了字符串和数字类型的单元格,你可能需要根据实际需求添加对其他类型(如日期、布尔值等)的处理。
2. 在处理`.xls`文件时,需要相应地更改`IWorkbook`的创建方式,并使用`HSSFWorkbook`代替`XSSFWorkbook`。
3. 确保在项目中正确安装了NPOI库,并正确引用了相应的命名空间。