搭建论坛《搭建之星》论坛数据库交流 → 完美解决《星》读取任意版本EXCEL文件


  共有4739人关注过本帖树形打印

主题:完美解决《星》读取任意版本EXCEL文件

帅哥哟,离线,有人找我吗?
玩脑者
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建亲友团
等级:版主 帖子:1152 积分:7690 威望:0 精华:1 注册:2008-7-5 1:22:45
完美解决《星》读取任意版本EXCEL文件  发帖心情 Post By:2008-10-3 17:34:15

在论论中有很多朋友提到《星》不能读取现在版版的EXCEL问题,本人也遇到过,在论坛中提问,月太官方说:现在只支持“标准格式”---也就是最早版本的EXCEL,对新版EXCEL不支持,是因为微软的ADO没有升级,不支持读取新版EXCEL,其实不然------微软也不傻,呵呵,完全可以读取。只是方法不对头而以。需要的朋友可以发短信。------不要说我不够无私。


http://hi.baidu.com/onenower
支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
从头再来
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 独闯江湖
等级:高工 帖子:340 积分:2442 威望:0 精华:0 注册:2008-9-29 16:06:07
  发帖心情 Post By:2008-10-4 13:23:44

EXCEL文件是个啥东西,它能干啥用,这么用。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建爱好者
等级:爱好者 帖子:238 积分:1173 威望:1 精华:0 注册:2006-12-28 10:22:07
  发帖心情 Post By:2008-10-4 14:11:13

以下是引用玩脑者在2008-10-3 17:34:15的发言:
在论论中有很多朋友提到《星》不能读取现在版版的EXCEL问题,本人也遇到过,在论坛中提问,月太官方说:现在只支持“标准格式”---也就是最早版本的EXCEL,对新版EXCEL不支持,是因为微软的ADO没有升级,不支持读取新版EXCEL。。。

呵呵,我的观点和你一样。。。

如果用搭建中的“ADO数据库连接”构件,并指定数据库类型为EXCEL,则只能显示连接成功,至于里面有几张表、甚至想看一下表里面的内容,根本就实现不了(我用的2003版本,其它的没测试过)。针对这一点,我们可以通过如下方法解决:

1、EXCEL数据库连接成功以后,要对表中的文件进行查询,表名称后面必须加上$,并以方括号引起来。如select * from [Sheet1$]。搭建在这方面可能没有对EXCEL类型的数据库处理好;
2、经过上面一步的操作,就可以顺利显示EXCEL数据表中的内容了。但是,如果这个时候想对表中的内容进行编辑修改的话,则不断提示“操作必须使用一个可更新的查询”。也就是说,用搭建自带的EXCEL数据库连接,是具有只读属性的,而不具有写入属性。

后来经过深入研究发现,搭建产品中的“ADO数据库连接”构件,其实就是调用微软“数据连接属性”中的jet提供程序。既然搭建自己做的EXCEL连接不好使,咱就直接用微软的吧。操作方法:

1、加入一个“ADO数据库连接”构件后,将其“数据库种类”设为“自定义”;
2、在“连接字符串”属性上双击,再点击“建立”,这时,搭建将调出微软的“数据连接属性”设置;
3、在“提供程序”选项卡上,选择“Jet 4.0 OLE DB Provider”;
4、在“连接”选项卡上,浏览并选择你的工作簿文件(默认为ACCESS文件,可将文件类型改为全部)。注意,要将“用户”、“密码”等项设置为空,因为这些不适用于 Excel 连接;
5、在“所有”选项卡上,从列表中选择扩展属性(Extended Properties),然后单击编辑值,输入 Excel 8.0。这里也可用分号 (;) 将其与任何其他已有的项分隔。这一步非常关键,否则的话,Jet提供程序将只会指向Access数据库;
6、返回到“连接”选项卡,单击“测试连接”,OK,完成!

通过这样的连接所建立的各种查询显示,编辑修改就不存在任何问题了。我也为此专门做了个例子,请各位下载测试。




支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建爱好者
等级:爱好者 帖子:238 积分:1173 威望:1 精华:0 注册:2006-12-28 10:22:07
  发帖心情 Post By:2008-10-4 14:12:12

例子在这里:

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建爱好者
等级:爱好者 帖子:238 积分:1173 威望:1 精华:0 注册:2006-12-28 10:22:07
  发帖心情 Post By:2008-10-4 14:21:36

楼主的“完美方案”也可以公开出来让我们学习一下嘛。

事实证明,搭建官方的说法是不成立的。至于官方是否改进“SQL数据库连接”构件,就看他们自己了。这个问题我早就发现了,本来是不想说的,看到楼主如此关心EXCEL的读写问题,我也就跟个帖表达一下。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
玩脑者
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建亲友团
等级:版主 帖子:1152 积分:7690 威望:0 精华:1 注册:2008-7-5 1:22:45
  发帖心情 Post By:2008-10-4 14:28:21

对啊,搭建的很多构件,包括属性都是调用微软的,当我了解到这一点后,通过查看微软支持库中ADO与EXCEL调用时,找到了解决方案,

关于读入,对于不太了解SQL的朋友,我的方法是,在EXCEL---插入-----名称----定义-----弹出窗口,输入一个名称,定义区域,确定就可以了,这种方法的好处在于在一个SHEET里可以定义多个(N个)区域,想读哪就读哪。

现在试一试吧,,,。。。

另外加上reachtone朋友的写入,就可以完全自由的对EXCEL表实施操作了。。。

微软支持库:http://support.microsoft.com/kb/278973/zh-cn



http://hi.baidu.com/onenower
支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建爱好者
等级:爱好者 帖子:238 积分:1173 威望:1 精华:0 注册:2006-12-28 10:22:07
  发帖心情 Post By:2008-10-4 14:41:00

以下是引用玩脑者在2008-10-4 14:28:21的发言:

关于读入,对于不太了解SQL的朋友,我的方法是,在EXCEL---插入-----名称----定义-----弹出窗口,输入一个名称,定义区域,确定就可以了,这种方法的好处在于在一个SHEET里可以定义多个(N个)区域,想读哪就读哪。

另外加上reachtone朋友的写入,就可以完全自由的对EXCEL表实施操作了。。。

呵呵,没必要这么复杂,其实就是一个“ADO数据库连接”构件的问题。只要通过“字符串”方式对EXCEL文件建立连接,搭建就可以象处理其它数据库一样对任意列、任意条件的数据记录进行查询和修改。而且,不同数据库的连接字符串,其格式都是固定的,完全可以在创建窗口的时候,自己直接给“连接字符串”赋值,非常简单。

我也没做什么写入功能,只是改变了一下EXCEL文件的连接方式而已。如果搭建官方能完善一下EXCEL文件的连接,那就最好不过了。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
mysoap
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:305 积分:2860 威望:0 精华:0 注册:2008-7-4 9:48:31
  发帖心情 Post By:2008-10-4 14:55:50

《搭建》是严格按照“系统构件”的模式做的,给人以很大的发挥空间;

《搭建》不乱做构件,这也是我喜欢它的原因。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
mysoap
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:305 积分:2860 威望:0 精华:0 注册:2008-7-4 9:48:31
  发帖心情 Post By:2008-10-4 14:59:40

作为一个“开发工具”来讲,有些东西看不清楚,先放一放,也是一个不错的选择。。。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建爱好者
等级:爱好者 帖子:238 积分:1173 威望:1 精华:0 注册:2006-12-28 10:22:07
  发帖心情 Post By:2008-10-4 15:14:07

呵呵,我在三楼说的步骤,只有企业版用户才可以用的。因为其它版本用户的“ADO数据库连接”构件,根本就没有“字符串连接”这一属性。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 15 1 2 下一页

返回版面帖子列表

完美解决《星》读取任意版本EXCEL文件








签名