C#把EXCEL数据转换成DataTable

下面是详细讲解"使用C#将Excel数据转换为DataTable"的完整攻略:

准备工作

在使用C#处理Excel文件的时候,我们需要先安装Microsoft.Office.Interop.ExcelMicrosoft.Office.Core这两个组件。可以通过Nuget包管理器安装这两个组件。

方法一:使用OleDb读取Excel数据

这种方法适用于xlsxlsx文件,具体实现步骤如下:

  1. 使用OleDbConnection对象连接Excel文件
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourExcelFilePath;Extended Properties=Excel 12.0;";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
  1. 使用OleDbDataAdapter对象读取Excel数据
string sqlCommand = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlCommand, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
  1. 释放资源
adapter.Dispose();
connection.Close();

示例:

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourExcelFilePath;Extended Properties='Excel 12.0;HDR=YES;'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    string commandString = "SELECT * FROM [Sheet1$]";
    using (OleDbDataAdapter adapter = new OleDbDataAdapter(commandString, connection))
    {
        DataTable dataTable = new DataTable();
        adapter.Fill(dataTable);
        // 可以使用dataTable进行操作
    }
}

方法二:使用EPPlus读取Excel数据

EPPlus是一个用于操作xlsx格式Excel文件的开源库,可以通过Nuget包管理器安装。具体实现步骤如下:

  1. 使用ExcelPackage对象打开Excel文件
string filePath = "yourExcelFilePath";
ExcelPackage package = new ExcelPackage(new FileInfo(filePath));
  1. 获取Excel表格中的数据
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
DataTable dataTable = new DataTable();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
    dataTable.Columns.Add(worksheet.Cells[1, col].Value.ToString());
}
for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
{
    DataRow dataRow = dataTable.NewRow();
    for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
    {
        dataRow[col - 1] = worksheet.Cells[row, col].Value;
    }
    dataTable.Rows.Add(dataRow);
}
  1. 释放资源
package.Dispose();

示例:

string filePath = "yourExcelFilePath";
ExcelPackage package = new ExcelPackage(new FileInfo(filePath));
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
DataTable dataTable = new DataTable();
for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
{
    dataTable.Columns.Add(worksheet.Cells[1, col].Value.ToString());
}
for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
{
    DataRow dataRow = dataTable.NewRow();
    for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
    {
        dataRow[col - 1] = worksheet.Cells[row, col].Value;
    }
    dataTable.Rows.Add(dataRow);
}
package.Dispose();
// 可以使用dataTable进行操作

以上就是使用C#将Excel数据转换为DataTable的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#把EXCEL数据转换成DataTable - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 如何使用Dapper处理多个结果集与多重映射实例教程

    下面是详细的攻略: 什么是Dapper? Dapper是一个开源的、轻量级的ORM(对象关系映射)框架,它是StackExchange出品的,具有高性能、易用等特点。它适用于多种数据库,并且可以从NuGet中轻松获取到。 处理多个结果集 在Dapper中处理多个结果集的方法很简单,只需在Query方法中传入一个参数splitOn即可。 假设我们的数据库中有两…

    C# 2023年6月6日
    00
  • C#中的IEnumerable接口深入研究

    IEnumerable接口是什么? IEnumerable是C#编程语言中基于集合的迭代的核心接口。该接口是一个泛型接口,定义了获取可枚举集合的枚举器的方法,通过枚举器可以对集合进行迭代操作。 IEnumerable的工作原理如何? IEnumerable接口是基于迭代器设计的。在调用IEnumerable接口中的GetEnumerator()方法时,它将返…

    C# 2023年5月15日
    00
  • .NET Core中使用Redis与Memcached的序列化问题详析

    .NET Core 中使用 Redis 与 Memcached 的序列化问题详析 在 .NET Core 中,Redis 和 Memcached 是两个非常流行的缓存解决方案。在使用 Redis 和 Memcached 时,序列化是一个非常重要的问题。本攻略将详细介绍在 .NET Core 中使用 Redis 和 Memcached 时的序列化问题,并提供多…

    C# 2023年5月17日
    00
  • Net core中使用System.Drawing对上传的图片流进行压缩(示例代码)

    在.NET Core中,使用System.Drawing对上传的图片流进行压缩是一项常见的任务,它可以帮助您减小图片的大小并提高应用程序的性能。在本攻略中,我们将详细讲解如何使用System.Drawing对上传的图片流进行压缩,并提供两个示例说明。 步骤一:安装NuGet包 要使用System.Drawing对上传的图片流进行压缩,您需要安装以下NuGet…

    C# 2023年5月17日
    00
  • C#语法相比其它语言比较独特的地方(三)

    下面来详细讲解“C#语法相比其它语言比较独特的地方(三)”。 1. Lambda表达式 Lambda表达式是C#语法中相比其它语言比较独特的地方之一。Lambda表达式是一种匿名函数,可以使用简短、清晰的语法编写。它主要用于简化代码,使代码更加易读。以下是一个简单的Lambda表达式的示例: // 普通方式定义函数 delegate int Calculat…

    C# 2023年6月7日
    00
  • .Net 项目代码风格要求小结

    我很乐意分享一下“.Net 项目代码风格要求小结”的完整攻略。 一、标准命名规则 在 .Net 项目中,遵循标准命名规则可以提高代码的可读性和可维护性。下面是一些常用的规则: 1. 命名空间 命名空间包含一个或多个类,为了方便区分不同的模块或功能,应该使用层次结构。层次结构的命名方式应该类似于文件夹,使用点来分隔各个层级。例如: namespace Comp…

    C# 2023年5月31日
    00
  • asp.net repeater手写分页实例代码

    下面是详细讲解“asp.net repeater手写分页实例代码”的完整攻略,包括以下内容: 实现分页的原理 asp.net repeater手写分页实例的步骤 示例代码说明 实现分页的原理 asp.net中实现自定义分页的原理是先查询出所有数据,再通过页面传递参数来获取当前页码,根据当前页码将所有数据分页显示出来。 具体实现方式是,先使用SQL语句查询出所…

    C# 2023年5月31日
    00
  • C# 如何实现一个基于值相等性比较的字典

    实现一个基于值相等性比较的字典需要满足两个条件: 能够将自定义类型作为字典中的键; 能够通过自定义类型的值相等性判断两个键是否相等。 下面将介绍如何使用 C# 实现这两个条件: 第一步:让自定义类型实现 IEquatable 接口 我们需要通过重写 Equals 方法来实现这一点。示例如下: public class MyClass : IEquatable…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部