首页 经验

c#导入excel

时间: 2024-04-28 22:14:14

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


在C#中导入Excel文件有多种方式,以下是一些常见的方法:

1. 使用 Microsoft.Office.Interop.Excel 命名空间:

这是最常见的方法,需要引用 Microsoft.Office.Interop.Excel 程序集。这种方法需要在系统上安装 Microsoft Office,并且需要确保应用程序有适当的权限访问Excel文件。

csharpusing Excel = Microsoft.Office.Interop.Excel;
// 打开Excel文件
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(@"C:\path\to\your\file.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++)
    {
        string cellValue = worksheet.Cells[row, col].Value?.ToString();
        // 处理读取到的单元格数据
        Console.WriteLine($"Row {row}, Column {col}: {cellValue}");
    }
}
// 关闭工作簿和Excel应用程序
workbook.Close();
excelApp.Quit();

2. 使用 EPPlus 库:

EPPlus是一个开源的.NET库,可以在不使用Microsoft Office的情况下读写Excel文件。它提供了一个简单的API来处理Excel文件。

csharpusing OfficeOpenXml;
// 打开Excel文件
using (var package = new ExcelPackage(new FileInfo(@"C:\path\to\your\file.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++)
        {
            string cellValue = worksheet.Cells[row, col].Value?.ToString();
            // 处理读取到的单元格数据
            Console.WriteLine($"Row {row}, Column {col}: {cellValue}");
        }
    }
}

3. 使用 OleDb 连接:

这种方法使用OleDb连接来读取Excel文件,适用于不同版本的Excel文件。

csharpusing System.Data;
using System.Data.OleDb;
// 连接字符串根据Excel文件版本而有所不同
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    // 创建数据适配器并填充数据集
    OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connection);
    DataSet dataSet = new DataSet();
    adapter.Fill(dataSet);
    // 处理数据集中的数据
    DataTable dataTable = dataSet.Tables[0];
    foreach (DataRow row in dataTable.Rows)
    {
        foreach (var item in row.ItemArray)
        {
            // 处理单元格数据
            Console.WriteLine(item);
        }
    }
}

这三种方法各有优缺点:

1. 使用 Microsoft.Office.Interop.Excel 方法需要安装 Microsoft Office,并且需要确保应用程序有适当的权限访问Excel文件。这种方法比较简单,但可能会遇到权限问题。

2. 使用 EPPlus 库不需要安装 Microsoft Office,并且提供了一个简单的API来处理Excel文件。这种方法更加灵活,但可能需要额外引入第三方库。

3. 使用 OleDb 连接方法适用于不同版本的Excel文件,但需要编写更多的代码来处理数据集。这种方法更加通用,但可能需要更多的配置和设置。

根据具体的需求和环境,可以选择合适的方法来导入Excel文件。


上一个 excel表格填充序号 文章列表 下一个 excel表格删除空行

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号