您的位置:首页 > 编程语言 > ASP

ASP 如何读取 Word 档案内容并显示于网页

2007-12-15 14:14 661 查看
[align=left]一般而言,在 ASP 或 ASP.Net 中透过 CreateObject 建构函数建立 Word 对象[/align]
[align=left]会有安全性及使用权限上的问题,因此若虚拟目录不使用整合 Windows 验证[/align]
[align=left]将无法存取 Word doc 檔,更不用说虚拟目录以外的目录 ,好比说 C:/ 根目录下的 Word 文件。[/align]
[align=left] [/align]
[align=left]底下介绍个方式,给大家参考看看:[/align]
[align=left] [/align]
[align=left]l 使用 VB6 [/align]
[align=left]n 建立项目,选择 ActiveX DLL[/align]
[align=left]n 将项目的 Name属性设定成 Ax,Class 的 Name 属性设为 Word[/align]
[align=left]n 编辑程序代码如下 :[/align]
n
Public Function GetDocContent(strFile As String) As String
Dim wdObj As Object ' 宣告
Set wdObj = CreateObject("Word.Application") ' 個體化 Word 物件
With wdObj
.Documents.Open strFile ' 開啟 Word 檔
GetDocContent = .ActiveDocument.Content ' 讀出 Word 內容囉
' 底下關掉 Word 檔 , 釋放資源
On Error Resume Next
.ActiveDocument.Close
.ActiveWindow.Close
.Quit
End With
Set wdObj = Nothing
End Function
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]n 编译制成 DLL[/align]
[align=left] [/align]
[align=left]Compiler 完成后请使用 RegSvr32.exe 将该 Dll 组件"反注册" , 如[/align]
[align=left] RegSvr32 /u "路径+文件名.dll"[/align]
[align=left] [/align]
[align=left] RegSvr32.exe 工具使用可参考:[/align]
[align=left]<< 关于 ActiveX (OLE) 组件登录注册 >>[/align]
[align=left]http://blog.blueshop.com.tw/hammerchou/archive/2006/04/06/20787.aspx [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]l 执行 DCOMCNFG.EXE -> [确定][/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n COM+应用程序 -> 鼠标右键 -> 新增 -> 应用程序[/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n [下一步] -> 建立空的应用程序[/align]



[align=left] [/align]
[align=left]n 输入应用程序名称 -> 伺服应用程序 -> [下一步][/align]
[align=left] [/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n 使用下列使用者 -> 使用者 -> 密码 / 确认密码 -> [下一步] -> [完成][/align]
[align=left]u 输入 Administrator 及密码[/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n AxWord -> 组件 -> 鼠标右键 -> 新增 -> 组件 -> [下一步][/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n [安装新组件][/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n 选取先前用 VB6 编译制成的 DLL [/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n [下一步] -> [完成] [/align]



[align=left] [/align]
[align=left] [/align]
[align=left]l ASP Code 如下: [/align]
n
<%
' 宣告
Dim wd
' 建立先前寫的 DLL 物件 , 個體化
Set wd = Server.CreateObject("AX.Word")
' 執行 Dll 中的 GetDocContent 方法讀 Word 內容
Response.Write wd.GetDocContent("C:/1.doc")
%>
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]================================================================[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]以上方式是使用 VB6 ,将 Word 对象作动的部份写成 ActiveX Dll ,[/align]
[align=left]在放到组件服务里的 COM+ 中,并指定 Administrator 去执行,以避开安全性上的权限问题;[/align]
[align=left]但倘若手边没有 VB6开发工具呢?底下介绍 WSC 的方式,只要文字文件不需VB6啰 ![/align]
[align=left] [/align]
[align=left] [/align]
[align=left]WSC ( Windows Script Component )[/align]
[align=left] [/align]
[align=left]l 建立一新文字文件[/align]
[align=left]n 编辑程序代码如下 :[/align]
n
<?xml version="1.0"?>
<component>
<registration
description="PH ActiveX Word Windows Script Component"
progid="AxWsc.Word"
version="1.00"
classid="{5F644CD7-E1D4-4D54-A260-B4CCC2F540FC}">
</registration>
<public>
<method name="GetDocContent">
</method>
</public>
<script language="VBScript">
<![CDATA[
Function GetDocContent(strFile)
Dim wdObj
Set wdObj = CreateObject("Word.Application")
With wdObj
.Documents.Open strFile
GetDocContent = .ActiveDocument.Content
On Error Resume Next
.ActiveDocument.Close
.ActiveWindow.Close
.Quit
End With
Set wdObj = Nothing
End Function
]]>
</script>
</component>
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]n 存档命名为 AxWord.wsc ( 注意扩展名为 WSC )[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]n 选取档案 -> 鼠标右键 -> 注册 -> 出现注册是否成功的讯息 -> [确定][/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n 选取档案 -> 鼠标右键 -> 建立型态链接库[/align]
[align=left]u ( 会产生一 ScriptLet.tlb 的 Type Library 档案 )[/align]



[align=left] [/align]
[align=left] [/align]
[align=left]n 之后如同 ActiveX Dll 安装于组件服务中的动作[/align]
[align=left] [/align]
[align=left]n 直到 [安装新组件] 时,请选择 ScriptLet.tlb 档案[/align]
[align=left] [/align]
[align=left]n 完成后画面如下 :[/align]



[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]l ASP Code 如下: [/align]
n
<%
' 宣告
Dim wd
' 建立先前寫的 DLL 物件 , 個體化
Set wd = Server.CreateObject("AxWsc.Word")
' 執行 Dll 中的 GetDocContent 方法讀 Word 內容
Response.Write wd.GetDocContent("C:/1.doc")
%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐