Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可
C#操作Excel数据增删改查。

首先创建ExcelDB.xlsx文件,并添加两张工作表。

工作表1:

UserInfo表,字段:UserId、UserName、Age、Address、CreateTime。

工作表2:

Order表,字段:OrderNo、ProductName、Quantity、Money、SaleDate。

1、创建ExcelHelper.cs类,Excel文件处理类

复制代码代码如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data.OleDb; 
using System.Data;

namespace MyStudy.DAL 
{ 
/// <summary> 
/// Excel文件处理类 
/// </summary> 
public class ExcelHelper 
{  // www.jbxue.com
private static string fileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/ExcelFile/ExcelDB.xlsx";

private static OleDbConnection connection; 
public static OleDbConnection Connection 
{ 
get 
{ 
string connectionString = ""; 
string fileType = System.IO.Path.GetExtension(fileName); 
if (string.IsNullOrEmpty(fileType)) return null; 
if (fileType == ".xls") 
{ 
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=2\""; 
} 
else 
{ 
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=2\""; 
} 
if (connection == null) 
{ 
connection = new OleDbConnection(connectionString); 
connection.Open(); 
} 
else if (connection.State == System.Data.ConnectionState.Closed) 
{ 
connection.Open(); 
} 
else if (connection.State == System.Data.ConnectionState.Broken) 
{ 
connection.Close(); 
connection.Open(); 
} 
return connection; 
} 
}

/// <summary> 
/// 执行无参数的SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <returns>返回受SQL语句影响的行数</returns> 
public static int ExecuteCommand(string sql) 
{ 
OleDbCommand cmd = new OleDbCommand(sql, Connection); 
int result = cmd.ExecuteNonQuery(); 
connection.Close(); 
return result; 
}

/// <summary> 
/// 执行有参数的SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <param name="values">参数集合</param> 
/// <returns>返回受SQL语句影响的行数</returns> 
public static int ExecuteCommand(string sql, params OleDbParameter[] values) 
{ 
OleDbCommand cmd = new OleDbCommand(sql, Connection); 
cmd.Parameters.AddRange(values); 
int result = cmd.ExecuteNonQuery(); 
connection.Close(); 
return result; 
}

/// <summary> 
/// 返回单个值无参数的SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <returns>返回受SQL语句查询的行数</returns> 
public static int GetScalar(string sql) 
{ 
OleDbCommand cmd = new OleDbCommand(sql, Connection); 
int result = Convert.ToInt32(cmd.ExecuteScalar()); 
connection.Close(); 
return result; 
}

/// <summary> 
/// 返回单个值有参数的SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <param name="parameters">参数集合</param> 
/// <returns>返回受SQL语句查询的行数</returns> 
public static int GetScalar(string sql, params OleDbParameter[] parameters) 
{ 
OleDbCommand cmd = new OleDbCommand(sql, Connection); 
cmd.Parameters.AddRange(parameters); 
int result = Convert.ToInt32(cmd.ExecuteScalar()); 
connection.Close(); 
return result; 
}

/// <summary> 
/// 执行查询无参数SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <returns>返回数据集</returns> 
public static DataSet GetReader(string sql) 
{ 
OleDbDataAdapter da = new OleDbDataAdapter(sql, Connection); 
DataSet ds = new DataSet(); 
da.Fill(ds, "UserInfo"); 
connection.Close(); 
return ds; 
}

/// <summary> 
/// 执行查询有参数SQL语句 
/// </summary> 
/// <param name="sql">SQL语句</param> 
/// <param name="parameters">参数集合</param> 
/// <returns>返回数据集</returns> 
public static DataSet GetReader(string sql, params OleDbParameter[] parameters) 
{ 
OleDbDataAdapter da = new OleDbDataAdapter(sql, Connection); 
da.SelectCommand.Parameters.AddRange(parameters); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
connection.Close(); 
return ds; 
} 
} 
} 

2、 创建实体类

2.1 创建UserInfo.cs类,用户信息实体类。

复制代码代码如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data;

namespace MyStudy.Model 
{ 
/// <summary> 
/// 用户信息实体类 
/// </summary> 
public class UserInfo 
{ 
public int UserId { get; set; } 
public string UserName { get; set; } 
public int? Age { get; set; } 
public string Address { get; set; } 
public DateTime? CreateTime { get; set; }

/// <summary> 
/// 将DataTable转换成List数据 
/// </summary> 
public static List<UserInfo> ToList(DataSet dataSet) 
{ 
List<UserInfo> userList = new List<UserInfo>(); 
if (dataSet != null && dataSet.Tables.Count > 0) 
{ 
foreach (DataRow row in dataSet.Tables[0].Rows) 
{ 
UserInfo user = new UserInfo(); 
if (dataSet.Tables[0].Columns.Contains("UserId") && !Convert.IsDBNull(row["UserId"])) 
user.UserId = Convert.ToInt32(row["UserId"]);

if (dataSet.Tables[0].Columns.Contains("UserName") && !Convert.IsDBNull(row["UserName"])) 
user.UserName = (string)row["UserName"];

if (dataSet.Tables[0].Columns.Contains("Age") && !Convert.IsDBNull(row["Age"])) 
user.Age = Convert.ToInt32(row["Age"]);

if (dataSet.Tables[0].Columns.Contains("Address") && !Convert.IsDBNull(row["Address"])) 
user.Address = (string)row["Address"];

if (dataSet.Tables[0].Columns.Contains("CreateTime") && !Convert.IsDBNull(row["CreateTime"]))  // www.jbxue.com
user.CreateTime = Convert.ToDateTime(row["CreateTime"]);

userList.Add(user); 
} 
} 
return userList; 
} 
} 
} 

2.2 创建Order.cs类,订单实体类。

复制代码代码如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data;

namespace MyStudy.Model 
{ 
/// <summary> 
/// 订单实体类 
/// </summary> 
public class Order 
{ 
public string OrderNo { get; set; } 
public string ProductName { get; set; } 
public int? Quantity { get; set; } 
public decimal? Money { get; set; } 
public DateTime? SaleDate { get; set; }

/// <summary> 
/// 将DataTable转换成List数据 
/// </summary> 
public static List<Order> ToList(DataSet dataSet) 
{ 
List<Order> orderList = new List<Order>(); 
if (dataSet != null && dataSet.Tables.Count > 0) 
{ 
foreach (DataRow row in dataSet.Tables[0].Rows) 
{ 
Order order = new Order(); 
if (dataSet.Tables[0].Columns.Contains("OrderNo") && !Convert.IsDBNull(row["OrderNo"])) 
order.OrderNo = (string)row["OrderNo"];

if (dataSet.Tables[0].Columns.Contains("ProductName") && !Convert.IsDBNull(row["ProductName"])) 
order.ProductName = (string)row["ProductName"];

if (dataSet.Tables[0].Columns.Contains("Quantity") && !Convert.IsDBNull(row["Quantity"])) 
order.Quantity = Convert.ToInt32(row["Quantity"]);

if (dataSet.Tables[0].Columns.Contains("Money") && !Convert.IsDBNull(row["Money"])) 
order.Money = Convert.ToDecimal(row["Money"]);

if (dataSet.Tables[0].Columns.Contains("SaleDate") && !Convert.IsDBNull(row["SaleDate"])) 
order.SaleDate = Convert.ToDateTime(row["SaleDate"]);

orderList.Add(order); 
} 
} 
return orderList; 
} 
} 
} 

3、创建业务逻辑类

3.1 创建UserInfoBLL.cs类,用户信息业务类。

复制代码代码如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data; 
using MyStudy.Model; 
using MyStudy.DAL; 
using System.Data.OleDb;

namespace MyStudy.BLL 
{ 
/// <summary> 
/// 用户信息业务类 
/// </summary> 
public class UserInfoBLL 
{ 
/// <summary> 
/// 查询用户列表 
/// </summary> 
public List<UserInfo> GetUserList() 
{ 
List<UserInfo> userList = new List<UserInfo>(); 
string sql = "SELECT * FROM [UserInfo$]"; 
DataSet dateSet = ExcelHelper.GetReader(sql); 
userList = UserInfo.ToList(dateSet); 
return userList; 
}

/// <summary> 
/// 获取用户总数 
/// </summary> 
public int GetUserCount() 
{ 
int result = 0; 
string sql = "SELECT COUNT(*) FROM [UserInfo$]"; 
result = ExcelHelper.GetScalar(sql); 
return result; 
}

/// <summary> 
/// 新增用户信息 
/// </summary> 
public int AddUserInfo(UserInfo param) 
{ 
int result = 0; 
string sql = "INSERT INTO [UserInfo$](UserId,UserName,Age,Address,CreateTime) VALUES(@UserId,@UserName,@Age,@Address,@CreateTime)"; 
OleDbParameter[] oleDbParam = new OleDbParameter[] 
{ 
new OleDbParameter("@UserId", param.UserId), 
new OleDbParameter("@UserName", param.UserName), 
new OleDbParameter("@Age", param.Age), 
new OleDbParameter("@Address",param.Address), 
new OleDbParameter("@CreateTime",param.CreateTime) 
}; 
result = ExcelHelper.ExecuteCommand(sql, oleDbParam); 
return result; 
}

/// <summary> 
/// 修改用户信息 
/// </summary> 
public int UpdateUserInfo(UserInfo param) 
{ 
int result = 0; 
if (param.UserId > 0) 
{ 
string sql = "UPDATE [UserInfo$] SET UserName=@UserName,Age=@Age,Address=@Address WHERE UserId=@UserId"; 
OleDbParameter[] sqlParam = new OleDbParameter[] 
{ 
new OleDbParameter("@UserId",param.UserId), 
new OleDbParameter("@UserName", param.UserName), 
new OleDbParameter("@Age", param.Age), 
new OleDbParameter("@Address",param.Address) 
}; 
result = ExcelHelper.ExecuteCommand(sql, sqlParam); 
} 
return result; 
}

/// <summary> 
/// 删除用户信息 
/// </summary> 
public int DeleteUserInfo(UserInfo param) 
{ 
int result = 0; 
if (param.UserId > 0) 
{ 
string sql = "DELETE [UserInfo$] WHERE UserId=@UserId"; 
OleDbParameter[] sqlParam = new OleDbParameter[] 
{ 
new OleDbParameter("@UserId",param.UserId), 
}; 
result = ExcelHelper.ExecuteCommand(sql, sqlParam); 
} 
return result; 
} 
} 
} 

3.2 创建OrderBLL.cs类,订单业务类

复制代码代码如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data; 
using MyStudy.Model; 
using MyStudy.DAL; 
using System.Data.OleDb;

namespace MyStudy.BLL 
{ 
/// <summary> 
/// 订单业务类 
/// </summary> 
public class OrderBLL 
{ 
/// <summary> 
/// 查询订单列表 
/// </summary> 
public List<Order> GetOrderList() 
{ 
List<Order> orderList = new List<Order>(); 
string sql = "SELECT * FROM [Order$]"; 
DataSet dateSet = ExcelHelper.GetReader(sql); 
orderList = Order.ToList(dateSet); 
return orderList; 
}

/// <summary> 
/// 获取订单总数 
/// </summary> 
public int GetOrderCount() 
{ 
int result = 0; 
string sql = "SELECT COUNT(*) FROM [Order$]"; 
result = ExcelHelper.GetScalar(sql); 
return result; 
}

/// <summary> 
/// 新增订单 
/// </summary> 
public int AddOrder(Order param) 
{  // www.jbxue.com
int result = 0; 
string sql = "INSERT INTO [Order$](OrderNo,ProductName,Quantity,Money,SaleDate) VALUES(@OrderNo,@ProductName,@Quantity,@Money,@SaleDate)"; 
OleDbParameter[] oleDbParam = new OleDbParameter[] 
{ 
new OleDbParameter("@OrderNo", param.OrderNo), 
new OleDbParameter("@ProductName", param.ProductName), 
new OleDbParameter("@Quantity", param.Quantity), 
new OleDbParameter("@Money",param.Money), 
new OleDbParameter("@SaleDate",param.SaleDate) 
}; 
result = ExcelHelper.ExecuteCommand(sql, oleDbParam); 
return result; 
}

/// <summary> 
/// 修改订单 
/// </summary> 
public int UpdateOrder(Order param) 
{ 
int result = 0; 
if (!String.IsNullOrEmpty(param.OrderNo)) 
{ 
string sql = "UPDATE [Order$] SET ProductName=@ProductName,Quantity=@Quantity,Money=@Money WHERE OrderNo=@OrderNo"; 
OleDbParameter[] sqlParam = new OleDbParameter[] 
{ 
new OleDbParameter("@OrderNo",param.OrderNo), 
new OleDbParameter("@ProductName",param.ProductName), 
new OleDbParameter("@Quantity", param.Quantity), 
new OleDbParameter("@Money", param.Money) 
}; 
result = ExcelHelper.ExecuteCommand(sql, sqlParam); 
} 
return result; 
}

/// <summary> 
/// 删除订单 
/// </summary> 
public int DeleteOrder(Order param) 
{ 
int result = 0; 
if (!String.IsNullOrEmpty(param.OrderNo)) 
{ 
string sql = "DELETE [Order$] WHERE OrderNo=@OrderNo"; 
OleDbParameter[] sqlParam = new OleDbParameter[] 
{ 
new OleDbParameter("@OrderNo",param.OrderNo), 
}; 
result = ExcelHelper.ExecuteCommand(sql, sqlParam); 
} 
return result; 
} 
} 
} 

C#操作Excel数据增删改查示例的更多相关文章

  1. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  2. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...

  3. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

  4. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  5. salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...

  6. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  7. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  8. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  9. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

随机推荐

  1. Unity3D音乐音效学习笔记

    对于Unity3D的音乐音效这块一直没有好好的看过,现在准备好好的研究一下,并作为一个笔记记录下. 支持格式 在游戏中,一般存在两种音乐,一种是时间较长的背景音乐,一种是时间较短的音效(比如按钮点击, ...

  2. Hibernate查询效率对比

    查询已知表名的实体时推荐使用getHibernateTemplate().executeWithNativeSession() + SQLQuery方式. 以下测试使用JUnit进行,仅查询一次,查询 ...

  3. sublime自定义snippet代码片段

    相信很多人喜欢sublime编辑工具有两个原因:第一sublime很轻巧方便:第二sublime提供很多自定义拓展功能,包括很简单且和很好用的代码片段功能snippet文件. 今天,在这里就介绍下su ...

  4. ext_EditorGridPanel (8)

    EditorGridPanel ExtJS 中的可编辑表格由类Ext.grid.EditorGridPanel 表示,xtype 为editorgrid,和gridPanel的区别就是,这个表格中的内 ...

  5. swift获取图片像素颜色值

    extension UIImage{ /** 获取图片中的像素颜色值 - parameter pos: 图片中的位置 - returns: 颜色值 */ func getPixelColor(pos: ...

  6. ResolveClientUrl("~/Styles/Site.cs")%>

    区别: <%=ResolveClientUrl("~/Styles/Site.cs")%> 和 <%=ResolveUrl("~/Styles/Site ...

  7. iOS strong 和weak的形象理解

    转自:http://hi.baidu.com/phone_lwc/item/c36e5bfe1cf9c313ce9f32be 觉得讲的很容易理解 The difference is that an o ...

  8. oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  9. 聊聊 #pragma 和 // MARK:

    我去,就这两个东西还要讲?是OC或Swift开发人员都知道是怎么回事好吗?不就是用来标记和分组代码的吗?难道还有别的装逼技能? 当然,其实问大部分人说这两个是什么作用,或者是除了这两个还知道什么的情况 ...

  10. Entity Framework实体框架使用TrackerEnabledDbContext进行操作日志跟踪

    在EF实体框架中进行日志跟踪,一般都是自己写个Log实体类,在数据保存时进行属性原始值验证来进行日志跟踪.当然还可以使用一些第三扩展库例如:entity framework extended进行日志记 ...