如何在PB和ASP中读取EXCEL电子表格的数据(收藏)
2004-12-31 10:36
561 查看
如何在PB和ASP中读取EXCEL电子表格的数据
杨继春 仵丁丑
西安市505信箱14号
在POWER BUILDER中,虽然在ODBC设置中提供了与EXCEL电子表格的接口,但是由于EXCEL的结构比较特殊,因此,如果按一般的数据库连接方法,则在读取数据时会出现“SYNTAX ERROR FROM CLAUSE”的错误,究其原因,是由于电子表格中左下角的SHEET1、SHEET2、SHEET3并不是真正意义上的表名,因而在数据传输时会出现找不到表名的错误,为了在PB中读取电子表格的数据,我们需要作如下处理:
假设有一个EXCEL电子表格,名为MYDATA.XLS,打开该电子表格,选定所需要的行与列,然后按菜单上的插入/名称/定义,弹出一个定义名称的对话框,我们在其中给所选的数据定义一个表名,如WORK,在该对话框的下端的引用位置中,有这样一句话“=SHEET1!$A$1:$C$22”,意思为该表名所定义的行列为SHEET1中的第一列第一行到第三列第22行,如想选择所有行,只需将其改为“=SHEET1!$A:$C”即可。然后按确定,这样我们就给所选定的行列定义好了名称。接着我们在PB的面板中连接该数据库,从中选择刚才定义的表,即可读出EXCEL电子表格中的数据了。若需要在程序中动态读取,只需在程序中加入下列语句:
SQLCA.DBMS=PROFILESTRING("PB.INI","DATABASE","DBMS","")
SQLCA.DATABASE=PROFILESTRING("PB.INI","DATABASE","DATABASE","")
SQLCA.DBPARM=PROFILESTRING("PB.INI","DATABASE","DBPARM","")
CONNECT USING SQLCA;
IF SQLCA.SQLCode<0 THEN
MESSAGEBOX("错误信息","连接数据库失败!")
RETURN
END IF
然后再SELECT * FROM WORK即可。
在ASP中读取EXCEL电子表格中的数据的方法,和PB中读取的方法基本相同,只需将读取数据库的程序改为下列语句即可。
SET CONN=SERVER.CREATOBJECT("ADODB.CONNECTION")
CONN.OPEN "MYDATA"
SET CONNSTR=SERVER.CREATOBJECT("ADODB.RECORDSET")
CONNSTR.SOURCE="SELECT * FROM WORK"
CONNSTR.OPEN
杨继春 仵丁丑
西安市505信箱14号
在POWER BUILDER中,虽然在ODBC设置中提供了与EXCEL电子表格的接口,但是由于EXCEL的结构比较特殊,因此,如果按一般的数据库连接方法,则在读取数据时会出现“SYNTAX ERROR FROM CLAUSE”的错误,究其原因,是由于电子表格中左下角的SHEET1、SHEET2、SHEET3并不是真正意义上的表名,因而在数据传输时会出现找不到表名的错误,为了在PB中读取电子表格的数据,我们需要作如下处理:
假设有一个EXCEL电子表格,名为MYDATA.XLS,打开该电子表格,选定所需要的行与列,然后按菜单上的插入/名称/定义,弹出一个定义名称的对话框,我们在其中给所选的数据定义一个表名,如WORK,在该对话框的下端的引用位置中,有这样一句话“=SHEET1!$A$1:$C$22”,意思为该表名所定义的行列为SHEET1中的第一列第一行到第三列第22行,如想选择所有行,只需将其改为“=SHEET1!$A:$C”即可。然后按确定,这样我们就给所选定的行列定义好了名称。接着我们在PB的面板中连接该数据库,从中选择刚才定义的表,即可读出EXCEL电子表格中的数据了。若需要在程序中动态读取,只需在程序中加入下列语句:
SQLCA.DBMS=PROFILESTRING("PB.INI","DATABASE","DBMS","")
SQLCA.DATABASE=PROFILESTRING("PB.INI","DATABASE","DATABASE","")
SQLCA.DBPARM=PROFILESTRING("PB.INI","DATABASE","DBPARM","")
CONNECT USING SQLCA;
IF SQLCA.SQLCode<0 THEN
MESSAGEBOX("错误信息","连接数据库失败!")
RETURN
END IF
然后再SELECT * FROM WORK即可。
在ASP中读取EXCEL电子表格中的数据的方法,和PB中读取的方法基本相同,只需将读取数据库的程序改为下列语句即可。
SET CONN=SERVER.CREATOBJECT("ADODB.CONNECTION")
CONN.OPEN "MYDATA"
SET CONNSTR=SERVER.CREATOBJECT("ADODB.RECORDSET")
CONNSTR.SOURCE="SELECT * FROM WORK"
CONNSTR.OPEN
相关文章推荐
- asp.net如何读取xml文件中的数据
- 在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框?
- asp.net(c#)如何读取上传过程中的.txt文件中的数据,并将其写入数据库的
- ASP.NET之如何用代码读取数据2
- Asp.net 数据读取如何得到最好的效能(讨论)
- 一个asp文件如何同时读取两个数据…
- asp.net如何读取xml文件中的数据
- ASP.NET之如何用代码读取数据1
- 如何用ASP读取SQL中的二进制数据
- flash+asp读取新闻数据_附带源文件收藏
- asp如何对access数据库的数据进行分页
- ASP.NET 读取Json格式数据
- 结合DataGrid控件ASP.NET上传并读取Excel文件数据
- 如何操作Excel读取数据导入DB2数据库
- Java如何从控制台中读取数据
- ASP.NET读取SQL数据
- ASP.NET中上传并读取Excel文件数据
- ASP中使用XMLHTTP读取远程数据2
- asp fso读取文件夹,如何按照(1:按创建时间 2:按访问时间 3:按修改时间 4:按名称)排序(2008-09-18,11:19:18)
- ASP.NET如何在窗体和窗体之间传送数据