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日

相关文章

  • C# winform分页查询的实现示例

    针对C# winform分页查询的实现,我将提供以下完整攻略: 1. 控件设计 首先,我们需要在winform中设计一个窗体,包含各种查询条件的输入框、按钮以及查询结果的显示表格。其中最重要的是要添加一个分页控件,用于分页查询结果。 2. 数据库操作 接下来,我们需要对数据库进行操作,从数据库中查询所需的数据。这里我们可以使用SQL语句进行查询,然后将查询结…

    C# 2023年6月1日
    00
  • BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面

    一、BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面攻略 背景简介 BootstrapTable是一款功能强大的jQuery表格插件,支持前端排序、分页、筛选等功能,使用方便,快捷。KnockoutJS是一个MVVM框架,可以自动更新页面中数据和DOM元素的状态。而自定义T4模板则是使用Visual Studio的代码生成…

    C# 2023年5月31日
    00
  • C# 设计模式系列教程-策略模式

    首先我们来介绍一下“C# 设计模式系列教程-策略模式”的概念。 策略模式 策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。通过定义多个算法类实现同一个接口,并且可以随时切换算法,使得客户端程序能够根据不同的情况选择不同的算法。 策略模式的角色 策略模式涉及到三个角色: 上下文(Context):拥有多个算法类对象,维护一个对于策略对象的引用,可以…

    C# 2023年6月6日
    00
  • 磊科路由器智能QoS配置步骤分享

    磊科路由器智能QoS是一种网络质量服务,可以帮助您优化网络带宽,提高网络性能。本攻略将深入探讨如何配置磊科路由器智能QoS,并提供两个示例说明。 配置磊科路由器智能QoS 配置磊科路由器智能QoS的步骤如下: 1. 登录路由器管理界面 首先,您需要登录到磊科路由器的管理界面。在浏览器中输入路由器的IP地址,然后输入用户名和密码进行登录。 2. 打开QoS设置…

    C# 2023年5月17日
    00
  • C# 递归函数详细介绍及使用方法

    C#递归函数详细介绍及使用方法 什么是递归函数? 递归函数是一种函数,它调用自身来解决问题。在编程中,递归函数通常用于解决计算机科学中的分治问题或数学归纳法中的问题。C#编程语言支持递归函数,并在解决某些问题时非常有用。 递归函数的工作原理 递归函数是基于递归的思想而设计的。其大致工作方式为:1. 函数调用自身2. 函数执行一些操作3. 递归函数达到结束状态…

    C# 2023年5月15日
    00
  • Winform下实现图片切换特效的方法

    首先我们需要明确一下,Winform是一个Windows桌面应用程序,为了实现图片切换特效,我们需要使用C#编写程序,下面是实现图片切换特效的方法: 1. 准备工作 在 Visual Studio 中创建一个 Winform 应用程序项目,然后在主窗体中添加一个 Picturebox 控件,用于展示图片切换效果。 2. 加载图片资源 为了实现图片切换特效,我…

    C# 2023年6月7日
    00
  • 写给想学习Javascript的朋友一点学习经验小结

    针对这个问题,我会分为以下四个部分进行回答: 网站中提供的资源和工具 如何学习Javascript 学习Javascript的思路和技巧 示例说明 网站中提供的资源和工具 首先,我自己的网站中提供了一些有关学习Javascript的资源和工具,这些资源和工具可以帮助你加深对Javascript的理解。其中包括: 文章和教程:网站中有一些文章和教程,可以帮助你…

    C# 2023年6月6日
    00
  • UGUI ScrollRect滑动定位优化详解

    UGUI ScrollRect滑动定位优化详解 前言 UGUI ScrollRect是Unity提供的一个用于制作滚动效果的UI组件,使用它可以比较方便地实现高效的滚动效果。但是在实际使用中,我们可能会遇到滑动定位的问题,即当我们滑动到一个特定位置后,需要把这个位置对应的item定位到屏幕中央或者其他位置。这时候,我们就需要对ScrollRect进行优化。 …

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