赞
踩
需要导入Oledb的nuget程序包,右键项目导入一下就好了:
- using System;
- using System.Data;
- using System.Data.OleDb;
-
- namespace excel
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- //很多这种; 遇到很多类不懂也没关系 学习这种连接都是一种固定的流程 也是直接把那个流程拿过来 后续要处理改动的地方其实不多 根据你需求小改即可
-
- string fileName = "装备信息.xsl"; //要选自动复制到输出目录
- string connectionStr = "Provider = Microsoft.Jet.OLEDB.4.0;"+"Data Source="+fileName+";"+";Extended Properties=\"Excel 0.0;HDR=YES;IMEX=1\""; //连接指定数据源
-
- OleDbConnection oleDbConnection = new OleDbConnection(connectionStr); // 把连接的字符串传递给它 -----建立一个连接对象
-
- oleDbConnection.Open(); //真正建立连接的语句,即如果上面那个数据对象存在 则建立连接
- //
- string sql = "select * from [Sheet1$]"; //数据库语句 查询所有行 从表格1里面 一个excel文件里面可以有表1 表2 表3
-
- OleDbDataAdapter oleAdapter = new OleDbDataAdapter(sql,oleDbConnection); // 数据设配器 用来执行 sql查询语的工具
-
-
- DataSet excelData = new DataSet(); // 怎么把数据从excel里面提取出来
-
- oleAdapter.Fill(excelData); //数据设配器 把 填充好的信息 放到excelData里面
-
- oleDbConnection.Close();//关闭连接
-
-
-
- DataTableCollection tableCollection = excelData.Tables; //表格集合
-
- DataTable table = tableCollection[0]; //得到它的一张表格
-
- DataRowCollection rowCcollection = table.Rows; //行集合
-
- foreach (DataRow row in rowCcollection)
- {
-
- for (int i = 0; i < 3; i++) {
- Console.WriteLine(row[i] + "");
-
-
- }
-
- Console.WriteLine();
- }
- }
- }
- }
excel表内容:
内容为:
ID | 名称 | 图标名称 | 售价 | 星级 | 品质 | 伤害 | 描述 |
1222 | 光剑 | 武器 | 12223 | 5 | 1 | 10000 | 光属性武器 |
134 | 翅膀 | 饰品 | 5432 | 3 | 2 | 1 | 光属性背饰 |
235 | 头盔 | 护具 | 1234 | 2 | 3 | 4444 | 普通护甲 |
但是遇到一个问题:
连接不上表的数据库:
2种说法:
1)目标平台用x86 ---32位的
2)数据库操作过于频繁
(22条消息) System.Data.OleDb.OleDbException: 未指定的错误的解决方法_weixin_34179968的博客-CSDN博客
但是目前没解决问题,后面再看看。
需要读写excel 还是用epplus ,用oledb有点麻烦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。