实际上用excel.application可以做到officeexcel软件所能做到的全部操作, 功能相当强大. 但我们每个人学习精力有限, 不可能每个都对它很熟悉. 于是乎, 我选用了大量的关键词在百度与google上搜索, 希望能得到一些有价值的东西. 但找来找去, 没发现一篇是完整版, 大多数是询问的, 而且代码中包含诸多的明显错误与功能上的缺性. 值得批评的是, 大量站点直接复制他人站点文章, 而且还是劣质文章. 诶, 不找也罢! 佛曰 我不下地狱谁下地狱, 于是我给大家把这个工作给做了.
我首先找了个vba的手册合集, 还好它是chm格式. 打开其中的vbaexcelxl10.chm, 嗯, 不错不错, 确实是一个不错的手册, 但是, 它不是一个教程, 欲哭无泪… 没办法, 只好硬头皮看下去. 手册毕竟是手册, 不会一把些细节上的便捷操作提出来, 也不会把各部分内容的逻辑关联讲得很完整. 经过我仔细的分析, 大胆的预测, 周密的思考, 大量的试验, 上刀山,下火锅, 不对,是火海, 好不容易才把它完美的实现了. 现在, 又把它连夜传到web630.net上, 仅仅只是希望大家记住这个站点, 同时希望各技术站多点原创文章, 为中国的程序业发展做点贡献.
复制代码 代码如下:
<%
rem 初始化excelapplication的工作环境
dim excelapp,ebook,esheet
set excelapp = createobject(”excel.application”) ‘建立excel对象
excelapp.displayalerts=false ‘不显示警告
excelapp.application.visible=false ‘不显示界面
rem 初始化excel数据
‘excelapp.workbooks.open(server.mappath(”zzz.xls”)) ‘打开excel工作本,可替换下面一行
set ebook=excelapp.workbooks.add ‘新建excel工作本
set ebook=excelapp.workbooks(1) ‘引用第一个工作本
set esheet = ebook.worksheets(1) ‘引用第一个工作表
rem 数据导入
dim i,img
i = 1
for i=1 to 5
esheet.cells(i,1).value=”字段一”&i
esheet.cells(i,2).value=”字段二”&i
esheet.cells(i,3).value=”字段三”&i
esheet.cells(i,4).select ‘选择第i行第4个单元单元格
set img=esheet.pictures.insert(server.mappath(”people.jpg”)) ‘在上述位置插入图片,并得到图片的引用
img.top=img.top+2 ‘调整图片位置,下同, 否则它会压住表格边线
img.left=img.left+2 ‘单位是磅
esheet.rows(i).rowheight=img.height+4 ‘调整当前行的高度,让它自动与图片高度相同
next
rem 保存上述所做的工作
‘ebook.save ‘如果是打开已经存在的excel文件,则可选用这行来代替下面一行
ebook.saveas server.mappath(”zzz.xls”)
set esheet=nothing
set ebook=nothing
‘excelapp.quit ‘一定要退出, 否则excel的进程留在操作系统中.
set excelapp = nothing
%>
asp向exce读取或写入数据时, 比较简洁的一种方法是把excel当作数据库使用sql语句来操作. 网上很多地方都有相关的文章, 本文仅作为《asp向excel导数据(图片)终结版》的辅助资料给大家参考.
复制代码 代码如下:
<%
dim conn,rs,sql
sub dbopen()
dim db : db=server.mappath(”zzz.xls”)
set conn=server.createobject(”adodb.connection”)
on error resume next
conn.open “provider=microsoft.jet.oledb.4.0;extended properties=”"excel 8.0;hdr=yes”";data source=” & db
rem hdr 默认为yes,表示第一行作为字段名, 否则视它为内容
rem 对于excel2007,而应为: “provider=microsoft.ace.oledb.12.0; extended properties=excel 12.0;data source=xxx.xlsx;”
if err.number<>0 then
err.clear
response.write(”<h1>the database link is error</h1>”)
response.end()
end if
on error goto 0
end sub
sub dbclose()
if isnotblank(conn) then
conn.close()
set conn=nothing
end if
end sub
function isnotblank(byref tempvar)
isblank = true
select case vartype(tempvar)
case 0,1 ‘empty & null
isblank = false
case 9 ‘object
if typename(tempvar) = “nothing” or typename(tempvar) = “empty” then
isblank = false
end if
end select
end function
call dbopen()
sql=”select * from [sheet1$]” ‘注意表名的写法, 需要在工作表名的后面加符号$
set rs=conn.execute(sql)
while not rs.eof
response.write(rs(0)&”, “)
response.write(rs(1)&”, “)
response.write(rs(2)&”<br />”&vbcrlf)
rs.movenext
wend
rs.close : set rs=nothing
call dbclose()
%>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!