请问怎么在ASP中调用WORD和EXCEL?

wang0821 2000-09-11 11:04:00
请问怎么在ASP中调用WORD和EXCEL?并且能将数据做保存,最好
有源码,小弟只有那么多分了~~`
...全文
242 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fractal 2000-09-12
  • 打赏
  • 举报
回复
这是因为ASP访问ActiveX组件时需要有足够的运行权限,有以下三种方法解决:

1. 在IIS中禁止对使用Excel程序的Web目录匿名访问,使用“基本验证”或“集成Windows验证”
2. 把系统安装在非NTFS卷上(系统安全性差)
3. 设置Excel组件所用到的所有模块(例如:EXCEL.EXE MSO9.DLL KERNEL32.DLL等)对“所有用户”有权运行 (理论上可行,但我想没人会这样做)

综合上述,基本上只有第一种方法是可行和安全的。

另外,在ASP中使用大的组件一般要遵循以下原则:

1. 该网站的访问量不是很高(例如局域网),运行大的组件对资源的使用也是巨大的。
2. ASP中必须保证不会弹出对话框(实际隐含不可见的),否则对ASP简直是致命的。例如下面程序中的.Close False是必须的,而上面程序中不能用objXL.Visible = TRUE。
3. 不要直接在ASP中调试,可以先在VB中调试该模块,再搬到ASP中,用VB调试至少要达到以下要求:
1) 程序不出错,例如在使用Worksheets对象的方法时出错。
2) 没有任何对话框弹出
3) 用到的资源要全部释放

程序例,以下程序我在Windows 2000 + Office 2000 上调试通过
(注意下面程序中的每一行都是必须的,不能少)

Set objXL = Server.CreateObject("Excel.Application")
' objXL.Visible = TRUE '在VB中调试时用
Set objXLBook = objXL.WorkBooks.Add

With objXLBook
.Worksheets(1).Range("A1").Value = "test"
Response.Write .Worksheets(1).Range("A1").Value
.Close False
End With

objXL.Quit

Set objXLBook = Nothing
Set objXL = Nothing


wang0821 2000-09-12
  • 打赏
  • 举报
回复
我当然装了office的,但是还是那一行有问题,说是该对象的访问被拒绝,
是不是需要第三方组件?
fractal 2000-09-12
  • 打赏
  • 举报
回复
另外,最好不要使用WScript.CreateObject,而使用Server.CreateObject
用完记着Set obj... = nothing
fractal 2000-09-12
  • 打赏
  • 举报
回复
你没装Office?
wang0821 2000-09-12
  • 打赏
  • 举报
回复
谢谢xiali:
Set objXL = WScript.CreateObject("Excel.Application")
这一行要报错,是不是需要注册Excel这个组件,哪里有这个组件
下载?
xiali 2000-09-11
  • 打赏
  • 举报
回复
不知以下示例对你是否有参考?
' Excel 示例

Dim objXL
Dim objXLNewBook
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
Set objXLNewBook = objXL.WorkBooks.Add
objXL.Columns(1).ColumnWidth = 20
objXL.Columns(2).ColumnWidth = 20
objXL.Columns(3).ColumnWidth = 20
objXL.Cells(1, 1).Value = "Name"
objXL.Cells(1, 2).Value = "Email"
objXL.Cells(1, 3).Value = "Http"
objXL.Range("A1:C1").Select
objXL.Selection.Font.Bold = True
objXL.Selection.Interior.ColorIndex = 14
objXL.Selection.Interior.Pattern = 1 'xlSolid
objXL.Selection.Font.ColorIndex = 2

Dim intIndex
intIndex = 2
Sub Write(strName, strValue, strDesc)
objXL.Cells(intIndex, 1).Value = strName
objXL.Cells(intIndex, 2).Value = strValue
objXL.Cells(intIndex, 3).Value = strDesc
intIndex = intIndex + 1
objXL.Cells(intIndex, 1).Select
End Sub
' 写入信息
Call Write("xiali", "xiali6800@sina.com", "http://xiali00.top263.net")

dim fName
fName = objXL.GetSaveAsFilename
If fName <> False then objXLNewBook.SaveAs
'***************
' Word 示例

Dim objWD
Dim objWDDoc
Set objWD = WScript.CreateObject("Word.Application")
objWD.Visible = TRUE
Set objWDDoc = objWD.Documents.Add
objWDDoc.Save

28,391

社区成员

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

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