前两天使用oledb连接excel的办法为单位某部门从一个excel的多个sheet中作连选抽出需要的数据,程序非常简单,结果很快就出来,原来手工需要很长时间才能选出的结果现在几乎一点击就有了结果。使用人员非常满意,由于是多人使用,开始只是将结果显示在一个页面上。后来他们要求将结果写入该xls文件的另一个sheet中,我随便写了个语句以为可以立马搞掂,没想到居然出现了“操作必须使用一个可更新的查询”。因为读取结果正常,我开始以为是excel文件所处的文件夹没有写权限所致。增加了相应权限后,结果依然如故。没办法还是检查程序吧,仔细检查了一下,问题发现了,原来开始只是为了读取excel我将连接写成了如下格式:
Private filename As String = Server.MapPath(".") + "test.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=1'"
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename
特别注意
Extended Properties='Excel 8.0;HDR=yes;IMEX=1'
A: HDR ( HeaDer Row )设置
若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称
若指定值為 No,代表 Excel 档中的工作表第一行就是資料了,沒有栏位名称
B:IMEX ( IMport EXport mode )设置
IMEX 有三种模式,各自引起的读写行为也不同,容後再述:
0 is Export mode
1 is Import mode
2 is Linked mode (full update capabilities)
我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:
当IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
看完这些大家就不用再说我的写如为什么有问题了吧。我将连接改为如下:
Private filename As String = Server.MapPath(".") + "test.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=2'"
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename
分享到:
相关推荐
使用oledb读写excel出使用oledb读写excel出使用oledb读写excel出使用oledb读写excel出
C#操作Excel(OLEDB)的实例,你可以参考这个代码发挥一下,写出属于自己的作品
* 4、对注册表的操作,解决读取Excel表格数据位数的限制【OperateRegedit】。 * 5、删除磁盘上指定的文件【ClearExcelFile】。 * 6、根据传入的Datatable数据源,生成Excel数据表...
Excel通用读写组件, 不需要服务器OLEDB支持, 是直接格式文件读写 调用方法超级简单,支持windows server 2008 服务器 大家以后导入导出EXCEL 就不用服务器安装OFFICE 了 The aim of this project is provide ...
本文实例讲述了C#使用oledb操作excel文件的方法。分享给大家供大家参考。具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel 说明:利用Office 的Excel组件来...
c# 读写 Excel 代码 PrintGiftVolume.rar
分析了Access数据库OLE 对象的特点,并给 出了在 Delphi环境下实际实现OLE对 象的保存\打 开与显示的处理方法(A ccess 数 据库 中 O LE 对象 的读 写操 作 许 俊 论文)
一般DotNet实用Oledb读取Excel的时候,经常出现数据类型错误,导致无效结果。比如Excel中编码列,编码:00001225 读取到Datagridview中可能变成 1224数字类型了,此Excel类不会出现,能正常读取全部数据。 本Excel...
迄今为止最好用得.net读写EXCEL库,比OleDb好了不止一点,不需要安装Office,不会出现由于Excel进程没释放导致的文件占用问题,不多说了,你们懂的!里边有例子及自己写的简要的中文说明,winform及Asp.net均可使用。
.net 读写Excel XML格式读和写 ACE.OLEDB读 欢迎访问http://121.18.78.216
1、使用OLEDB方式读写Excel,不需要Office组件支持; 2、支持导入导出时进度条(ProgressBar); 3、(这是跟上一版本的最大区别)可以将本地DataSet中的数据类型转换为对应的OleDB的数据类型导出,使导出的数据区...
摘要:C#源码,数据库应用,连接Excel,OLEDB C#使用Microsoft.Jet.OLEDB.4.0方式访问数据库,C#直接操作读写Excel文件,这个应用也是非常实用的,许多时候我们,我们使用微软的平台编程,有必要利用微软平台的优势。
1、使用OLEDB方式读写Excel,不需要Office组件支持; 2、支持导入导出时进度条(ProgressBar); 3、可以将本地DataSet中的数据类型转换为对应的OleDB的数据类型导出,使导出的数据区分开时间、数字、字符串,而...
使用c#对Excel的创建和读取,兼容了xls以及xlsx格式。Provider=Microsoft.ACE.OLEDB.12.0 Provider=Microsoft.Jet.OLEDB.4.0
可以使用内置的OLEDB来访问Excel的XLS表格。下面的例子演示了如何在C#编程读取Excel工作表。需要引用System.Data.OleDb库using System;using System.Data.OleDb;namespace ConsoleApplication1{ class Program { ...
Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...
25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 ...
25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 ...
1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....