Rss & SiteMap

搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp

搭建论坛是“搭建式”中文软件开发工具《搭建之星》、《网站·搭建者》技术交流的地方。
共15 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

1楼
玩脑者 发表于:2008-10-3 17:34:15
在论论中有很多朋友提到《星》不能读取现在版版的EXCEL问题,本人也遇到过,在论坛中提问,月太官方说:现在只支持“标准格式”---也就是最早版本的EXCEL,对新版EXCEL不支持,是因为微软的ADO没有升级,不支持读取新版EXCEL,其实不然------微软也不傻,呵呵,完全可以读取。只是方法不对头而以。需要的朋友可以发短信。------不要说我不够无私。
2楼
从头再来 发表于:2008-10-4 13:23:44
EXCEL文件是个啥东西,它能干啥用,这么用。
3楼
reachtone 发表于: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,完成!

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



4楼
reachtone 发表于:2008-10-4 14:12:12

例子在这里:

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

5楼
reachtone 发表于:2008-10-4 14:21:36

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

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

6楼
玩脑者 发表于:2008-10-4 14:28:21

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

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

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

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

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

7楼
reachtone 发表于:2008-10-4 14:41:00
以下是引用玩脑者在2008-10-4 14:28:21的发言:

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

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

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

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

8楼
mysoap 发表于:2008-10-4 14:55:50

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

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

9楼
mysoap 发表于:2008-10-4 14:59:40
作为一个“开发工具”来讲,有些东西看不清楚,先放一放,也是一个不错的选择。。。
10楼
reachtone 发表于:2008-10-4 15:14:07
呵呵,我在三楼说的步骤,只有企业版用户才可以用的。因为其它版本用户的“ADO数据库连接”构件,根本就没有“字符串连接”这一属性。
共15 条记录, 每页显示 10 条, 页签: [1] [2]

搭建之星 网站·搭建者 Copyright © 2000 - 2011
Powered By Dvbbs Version 8.2.0
Processed in 0.10938 s, 4 queries.