C# 读取Excel的几种常见方式及实现步骤

这篇具有很好参考价值的文章主要介绍了C# 读取Excel的几种常见方式及实现步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.使用 Microsoft Office Interop Excel 库

2.使用 OLEDB 数据库连接方式

3. 使用 EPPlus 库


在 C# 中,我们可以使用以下几种方式将 Excel 文件中的数据读取到 DataTable 中:

1.使用 Microsoft Office Interop Excel 库

这种方法需要安装 Microsoft Office,并且性能较低。具体实现步骤如下:

using System.Data;
using Excel = Microsoft.Office.Interop.Excel;

// 创建 Excel 对象
Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(@"D:\data.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1];

// 读取数据到 DataTable 中
DataTable dt = new DataTable();
for (int i = 1; i <= worksheet.UsedRange.Columns.Count; i++) {
    dt.Columns.Add(worksheet.Cells[1, i].Value2.ToString());
}
for (int j = 2; j <= worksheet.UsedRange.Rows.Count; j++) {
    DataRow dr = dt.NewRow();
    for (int i = 1; i <= worksheet.UsedRange.Columns.Count; i++) {
        dr[i - 1] = worksheet.Cells[j, i].Value2;
    }
    dt.Rows.Add(dr);
}

// 关闭 Excel 对象
workbook.Close(false, Type.Missing, Type.Missing);
app.Quit();

2.使用 OLEDB 数据库连接方式

这种方法需要安装 Microsoft Access Database Engine,但性能高于第一种方法。具体实现步骤如下:

using System.Data.OleDb;

// 定义 Excel 连接字符串
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\data.xlsx;Extended Properties=\"Excel 12.0\";";

// 创建 OleDbConnection 对象
OleDbConnection conn = new OleDbConnection(connectionString);

// 打开连接
conn.Open();

// 查询数据
string sql = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);

// 关闭连接
conn.Close();

3. 使用 EPPlus 库

这种方法需要引入 EPPlus 依赖库。具体实现步骤如下:

using System.IO;
using OfficeOpenXml;

// 创建 ExcelPackage 对象
using (ExcelPackage package = new ExcelPackage(new FileInfo(@"D:\data.xlsx"))) {
    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];

    // 读取数据到 DataTable 中
    DataTable dt = new DataTable(worksheet.Name);
    foreach (var firstRowCell in worksheet.Cells[1, 1, 1, worksheet.Dimension.End.Column]) {
        dt.Columns.Add(firstRowCell.Text);
    }
    for (int rowNumber = 2; rowNumber <= worksheet.Dimension.End.Row; rowNumber++) {
        var row = worksheet.Cells[rowNumber, 1, rowNumber, worksheet.Dimension.End.Column];
        DataRow dr = dt.Rows.Add();
        foreach (var cell in row) {
            dr[cell.Start.Column - 1] = cell.Text;
        }
    }
}

 在以上三种方法中,第一种和第二种方法需要安装额外的依赖库,并且性能较低;而第三种方法虽然需要引入 EPPlus 依赖库,但性能较高且使用方便。具体选择哪种方式可以根据自己的实际情况来考虑。文章来源地址https://www.toymoban.com/news/detail-524100.html

到了这里,关于C# 读取Excel的几种常见方式及实现步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java读取文件的几种方式

    1. 使用流读取文件 2. 使用JDK1.7提供的NIO读取文件(适用于小文件) 3. 使用JDK1.7提供的NIO读取文件(适用于大文件) 4. 使用JDK1.4提供的NIO读取文件(适用于超大文件) 5. 使用cmmons-io依赖提供的FileUtils工具类读取文件 添加依赖: 6. 使用cmmons-io依赖提供的IOtils工具类读取文件 添加依赖:

    2024年02月16日
    浏览(18)
  • java 读取文件的几种方式

    在 Java 中有几种常用的方式来读取文件: 使用 FileInputStream 类以字节的方式读取文件。 使用 BufferedReader 在字符输入流上包装一个缓冲区,以行为单位读取文件。 使用 Scanner 类以分隔符为标志读取文件。 使用 Files 类的 readAllLines 方法一次性读取所有行。 使用 ObjectInputStream 反

    2024年02月14日
    浏览(13)
  • SpringBoot读取配置的几种方式

    SpringBoot读取配置的几种方式

    1.第一种@Value 注意:static和final修饰的变量不生效 2.通过@ConfigurationProperties(prefix=“”)   适用于对对象多个变量统一绑定,比@Value高效 3.通过Environment Spring底层提供的API动态获取变量值    4.通过@PropertySources获取外部文件路径,再通过@Value获取值  只能读取properties文件

    2024年02月15日
    浏览(15)
  • java读取资源路径的几种方式

    java读取资源路径的几种方式

    注意,以上是在Junit测试文件中的结果,工作可以精确到所在模块,而普通类里打印是只有主目录没有模块的,如下:

    2024年02月15日
    浏览(11)
  • 常见的几种排序方式

    常见的几种排序方式

    排序: 所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作 稳定性: 假定在待排序的记录序列中,存在多个具有相同的的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在

    2024年02月07日
    浏览(12)
  • 1685_Excel的几种脚本处理方式

    1685_Excel的几种脚本处理方式

    全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com) 做个小结,实际上是写的我自己学习的过程。 关于Excel的处理方式很多,我也不会那么多,在这里我只想写一下我自己接触过的。大致是三种方式:MATLAB、Perl以及Python。 MATLAB实际上调用了win32的接口,因此

    2023年04月22日
    浏览(9)
  • 【SpringBoot系列】读取yml文件的几种方式

    【SpringBoot系列】读取yml文件的几种方式

    前言 在Spring Boot开发中,配置文件是非常重要的一部分,而yml文件作为一种常用的配置文件格式,被广泛应用于Spring Boot项目中。Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。本文将介绍Spring Boot读取yml文件的主要方式

    2024年02月05日
    浏览(11)
  • Unity中常用的几种读取本地文件方式

    使用的命名空间如下 using LitJson; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine; using UnityEngine.Networking; 1、通过UnityWebRequest获取本地StreamingAssets文件夹中的Json文件 View Code 2、通过UnityWebRequest和StreamReader读取本地StreamingAssets文件夹中的Json文件 View Code  3、通

    2024年02月04日
    浏览(11)
  • 常见路由跳转的几种方式

    常见路由跳转的几种方式

    常见的路由跳转有以下四种: 1. router-link to=\\\"跳转路径\\\"  也可,如 2. this.$router.push() 跳转到指定的url,并在history中添加记录(即,点击回退,会退回上一个页面) 。 html中,如: 3. this.$router.replace() 跳转到指定的url, 但不会在history记录(即,点击回退 退回到上上个页) 4

    2024年02月10日
    浏览(12)
  • MySQL加密的几种常见方式

    MySQL加密的几种常见方式

    MySQL提供了多种加密方式来保护数据的安全性。下面是几种常见的MySQL加密方式: 密码加密: MySQL5.7及以上版本使用SHA-256算法对密码进行加密。这种加密方式更安全,可以防止密码泄露。 之前的MySQL版本使用SHA-1算法进行密码加密。这种加密方式相对较弱,不建议使用。 数据

    2024年02月09日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包