C#操作Excel数据增删改查示例

操作Excel数据增删改查示例

C#语言中,我们可以使用OleDb和Excel Interop两种方式来操作Excel数据。

使用OleDb操作Excel数据

使用OleDb可以方便地对Excel中的数据进行操作。操作过程中,需要注意Excel版本和文件格式,以及数据类型的转换问题。

连接Excel

我们需要使用OleDbConnection类来建立与Excel文件的连接。连接字符串的格式如下:

string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<Excel文件路径>;Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";

其中,Data Source表示Excel文件路径,Extended Properties中的“HDR=YES”表示将Excel中的第一行作为字段名称。如果Excel是97-2003版本,需要将Extended Properties中的版本修改为“Excel 8.0”。

查询Excel数据

使用OleDbConnection和OleDbCommand类可以方便地查询Excel数据。以下是一个查询示例:

var conn = new OleDbConnection(connString);
conn.Open();
string sql = "SELECT * FROM [Sheet1$]";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
conn.Close();

以上代码可以查询Excel中名为“Sheet1”的表的所有数据,并将查询结果以DataTable的形式返回。可以根据需要调整查询条件,并且使用DataTable的方法对数据进行操作,例如:增删改查等。

增加Excel数据

使用OleDbCommand类的INSERT语句可以方便地向Excel中添加数据。以下是一个添加示例:

var conn = new OleDbConnection(connString);
conn.Open();
string sql = "INSERT INTO [Sheet1$] (name, age, gender) VALUES ('Tom', 22, 'Male')";
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
conn.Close();

以上代码可以向Excel的“Sheet1”表中添加一条数据,数据内容为“Tom”、“22”、“Male”。

使用Excel Interop操作Excel数据

Excel Interop可以提供更为细致的Excel操作,对数据格式转换更加支持,并且可以操作Excel的各种功能。

连接Excel

使用Excel Interop需要先添加对Microsoft.Office.Interop.Excel的引用,然后通过以下代码建立连接:

var app = new Excel.Application();
var workbook = app.Workbooks.Open(@"<Excel文件路径>");
var sheet = workbook.Sheets["Sheet1"] as Excel.Worksheet;

以上代码可以打开Excel文件,并且获取Sheet1工作表的引用。

查询Excel数据

使用Excel Interop需要对数据类型进行转换,以下是一个查询示例:

int rowCount = sheet.UsedRange.Rows.Count;
int colCount = sheet.UsedRange.Columns.Count;
DataTable dt = new DataTable();
for (int i = 2; i <= rowCount; i++)
{
    DataRow dr = dt.NewRow();
    for (int j = 1; j <= colCount; j++)
    {
        var value = sheet.Cells[i, j].Value2;
        dr[j - 1] = value == null ? "" : value.ToString();
    }
    dt.Rows.Add(dr);
}

以上代码可以查询Excel中的所有数据,并且将结果以DataTable的形式返回。

增加Excel数据

使用Excel Interop可以方便地向指定单元格写入数据,以下是一个添加示例:

sheet.Cells[2, 1].Value2 = "Tom";
sheet.Cells[2, 2].Value2 = 22;
sheet.Cells[2, 3].Value2 = "Male";

以上代码可以向Excel的“Sheet1”表中添加一条数据,数据内容为“Tom”、“22”、“Male”。

删除Excel数据

使用Excel Interop可以方便地删除指定单元格的数据,以下是一个删除示例:

sheet.Cells[2, 1].Value2 = "";
sheet.Cells[2, 2].Value2 = "";
sheet.Cells[2, 3].Value2 = "";

以上代码可以删除Excel中“Sheet1”表的第二行数据。

修改Excel数据

使用Excel Interop可以方便地修改指定单元格的数据,以下是一个修改示例:

sheet.Cells[2, 3].Value2 = "Female";

以上代码可以将Excel中“Sheet1”表的第二行第三列的数据修改为“Female”。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作Excel数据增删改查示例 - Python技术站

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

相关文章

  • ASP.NET 2.0,C#—-图像特效处理

    ASP.NET 2.0 是一个使用 Microsoft .NET Framework 构建 Web 应用程序的开发平台,它可以通过 .NET Framework 提供的底层支持来操作和管理一些基础设施,其中包括图像特效处理。本攻略将围绕着 ASP.NET 2.0 和 C#,详细讲解图像特效处理。 创建 ASP.NET 2.0 项目 首先,在 Visual S…

    C# 2023年6月3日
    00
  • C# 中实现ftp 图片上传功能(多快好省)

    下面是在C#中实现ftp图片上传功能的完整攻略。 1. 确定FTP服务器信息 在进行FTP图片上传之前,首先需要确定FTP服务器的相关信息,如FTP服务器的地址、端口、用户名、密码等。这些信息一般由FTP服务器的管理员提供,在使用FTP客户端工具时也需要输入。 2. 引入FTP操作组件 在C#中实现FTP操作,需要使用FTP操作组件。常用的FTP操作组件有F…

    C# 2023年5月15日
    00
  • Unity屏幕雪花另类实现方式示例

    Unity屏幕雪花另类实现方式示例 本文将讲解一种实现Unity屏幕雪花效果的另类方式,通过GPU粒子效果实现屏幕雪花的飘落效果。下面将分为以下几个部分进行讲解: 需要的素材和脚本 实现效果的步骤 示例说明 需要的素材和脚本 在实现过程中我们需要以下素材和脚本: 雪花样本纹理 ScreenSnowEffect.shader ScreenSnowEffect.…

    C# 2023年6月3日
    00
  • xUnit 编写 ASP.NET Core 单元测试的方法

    xUnit 编写 ASP.NET Core 单元测试的方法 在ASP.NET Core应用程序中,可以使用xUnit编写单元测试。在本攻略中,我们将介绍如何使用xUnit编写ASP.NET Core单元测试,并提供两个示例说明。 1. 安装xUnit 在ASP.NET Core应用程序中,可以使用NuGet包管理器安装xUnit。可以按照以下步骤操作: 在V…

    C# 2023年5月16日
    00
  • C#设计模式之职责链模式示例详解

    C#设计模式之职责链模式示例详解 什么是职责链模式 职责链模式是一种行为型模式,它能够将一个请求沿着多个对象链状传递,直到有一个对象处理该请求为止。这样的设计模式可以避免请求发送者与接收者之间的耦合,使得多个对象都有可能接收请求并处理它。 职责链模式的结构 这种模式通常包含一个抽象的处理者类,多个具体的处理者类,每个处理者类都包括一个指向下一个处理者的引用,…

    C# 2023年6月3日
    00
  • C# 函数返回多个值的方法详情

    下面我给你讲解一下C#函数返回多个值的方法详情: 1. 使用out关键字 使用out关键字是一个简单的方式,可以让函数返回多个值。out参数必须在方法内部赋值,否则编译器会报错。下面是一个返回三个整数的函数示例: public void GetValues(out int val1, out int val2, out int val3) { val1 = …

    C# 2023年5月15日
    00
  • C#中ManualResetEvent用法详解

    以下是关于“C#中ManualResetEvent用法详解”的完整攻略。 概述 ManualResetEvent 是一个同步基元,它允许一个或多个线程等待信号,然后再继续执行。当 WaitOne 方法被调用时,会阻塞线程直到接收到信号,然后线程被唤醒并继续执行。 ManualResetEvent 主要由两个方法 WaitOne() 和 Set() 组成。Wa…

    C# 2023年6月1日
    00
  • jQuery Ajax调用WCF服务详细教程

    jQuery Ajax调用WCF服务详细教程 WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的技术。在Web应用程序中,我们可以使用jQuery Ajax调用WCF服务来实现与服务器的通信。本文将详细讲解如何使用jQuery Ajax调用WCF服务,并提供两个示例。 1. 创建WCF服务 以下是创建WC…

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