请问asp读取excel 的时候,如何取得excel中各个sheet页的名字和sheet数

myxiaoxi 2005-12-02 11:56:24
请问
(1)asp读取excel 的时候,如何取得excel中各个sheet页的名字和sheet数.
(2)excel导入sql的时候,能不能该excel表中所有的页(格式相同)一起导入?
我现在实现的是:

只能导入一个sheet页,而且页名是固定的sheet1.代码如下:
Set rs = Server.CreateObject("ADODB.Recordset")
Sql="select * from [sheet1$] "
rs.Open Sql,StrConnect,2,2
有没有更好的方法?
...全文
579 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu_jin_ping 2005-12-15
  • 打赏
  • 举报
回复
rs("a")请问楼上高手这个是不是查找,exlcel的同列中了,a\b\c\e\f\g\h\i中的a 啊
myxiaoxi 2005-12-05
  • 打赏
  • 举报
回复
已经给你发邮箱了.多谢............
Leey001 2005-12-03
  • 打赏
  • 举报
回复
mail:westcrazy21@126.com
把页面及excel结构、数据库结构发我看一下
myxiaoxi 2005-12-02
  • 打赏
  • 举报
回复
to :westcrazy22
我试了,不行啊.程序全是执行完了."导入成功".但是读不出数据来,而且,我连我的sql表结构都打不开了,提示执行过程中发生致命错误..........怎么回事呀?????
Leey001 2005-12-02
  • 打赏
  • 举报
回复
<%
set rs=server.createobject("adodb.recordset")
path=server.mappath("...") 'excel文件的地址
on error resume next
Set newxls = CreateObject("Excel.Application")
newxls.Visible = True
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set newbook = newxls.Workbooks.Open(path)
sheetcount = newbook.Sheets.Count 'sheetcount为exl文件中的表的数量
Set newbook = Nothing
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For i = 1 To sheetcount
newxls.Visible = True
Set newbook = newxls.Workbooks.Open(path)
Set newsheet = newbook.Sheets(i)
j=1
while trim(newsheet.Cells(j,1).Value)<>"" '导入数据的条件,这里是从第j行开始,第1列都不为空的就导入
sql="……"
rs.open sql,conn,1,3
rs.addnew
rs("a")=newsheet.Cells(j,1).Value'将第一列的值导入数据库的a字段中

......

rs.update
rs.close
j=j+1
Wend
Set newsheet = Nothing
Set newbook = Nothing
Next
newxls.quit
set newxls=nothing
set rs=nothing
response.write "导入成功!"
%>

这个就是导入一个excel文件,多个sheet表的,不过前提是结构相同
myxiaoxi 2005-12-02
  • 打赏
  • 举报
回复
还有,能否把你那个页的完整代码传给我,我参考一下,dz_xcm@163.com我的邮箱,多谢了......
myxiaoxi 2005-12-02
  • 打赏
  • 举报
回复
to :westcrazy22
能否在你的代码上加注释,我不太懂.多谢......
Leey001 2005-12-02
  • 打赏
  • 举报
回复
(2)excel导入sql的时候,能不能该excel表中所有的页(格式相同)一起导入

这个是完全可以的,我就做过一个excel表,多个sheet,同时导入数据库,不过发现sheet页不要太多,要不容易出问题,我一般导入的在6个sheet左右
masong_1978 2005-12-02
  • 打赏
  • 举报
回复
up

Leey001 2005-12-02
  • 打赏
  • 举报
回复
第一个问题做过,给楼主部分代码参考一下
path=server.mappath("../xls/"&request.form("filename"))
Set newxls = CreateObject("Excel.Application")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set newbook = newxls.Workbooks.Open(path)
sheetcount = newbook.Sheets.Count 'sheetcount为exl文件中的表的数量
Set newbook = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For i = 1 To sheetcount '循环取所有表的记录
Set newbook = newxls.Workbooks.Open(path)
Set newsheet = newbook.Sheets(i)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
newsheet.Cells(2,1).Value '当前sheet页的第2行,第一列数据值


ps:asp操作excel要注意对象的关闭,否则很容易出现excel的死进程

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧