繁体   English   中英

从 MS Word 文档复制到网页输入框

[英]Copy from MS Word document to a web page input box

在已经打开的 word 文档中选择所有文本
将选定的文本复制到剪贴板
检查在正确的网址打开的默认浏览器
如果没有在网址“ http://thisaddress.com ”上打开默认浏览器
将焦点放在浏览器上,将剪贴板文本粘贴到名为“input1”的输入框中

或以其他方式将 MSword 文档内容获取到网页输入中?

目前的工作流程涉及秘书登录网站,然后填写网络表格,切换到他们打开的 MS Word 文档,全选,复制 WP 文档,然后回到网络表格并粘贴到输入框中,然后点击提交。 我想要做的理想情况是在 MS word 中有一个按钮,它将浏览器打开到正确的网页,然后将文档复制并粘贴到页面上的正确输入框中(实际上它将是唯一的 textarea 表单字段)。

MS Word VBA 代码是:

Option Explicit

Enum W32_Window_State
    Show_Normal = 1
    Show_Minimized = 2
    Show_Maximized = 3
    Show_Min_No_Active = 7
    Show_Default = 10
End Enum

Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean

' Opens passed URL with default application, or Error Code (<32) upon error

    Dim lngHWnd As Long
    Dim lngReturn As Long

    lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
        vbNullString, WindowState)

    OpenURL = (lngReturn > 32)
End Function

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL "http://localhost:8500/index.cfm?wordContent=" & Selection, W32_Window_State.Show_Maximized
End Sub

并以冷熔处理形式

<html>
<head>
</head>

<body>
<form id="form1">
    <Textarea ID="txtArea" rows=6><cfoutput>#url.wordContent#</cfoutput></textarea>
</form>

</body>
</html>

只是想弄清楚如果一个新的浏览器窗口已经打开,如何不打开它。

如果您可以修改 Web 应用程序,您可以执行以下操作:

  1. MS-Word:将内容复制到剪贴板。
  2. MS-Word:打开 URL 为“http://thisaddress.com/SomePage?pasteClipboard=true”
  3. SomePage:如果查询字符串参数 pasteClipboard == true,则添加一个 javascript 函数以将剪贴板数据放入您的表单字段中。

更新:

在您的宏中,您只需调用Selection.Copy ,并使用默认浏览器打开 URL 检查此链接http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_23225744.html

使用上一个链接中的代码,我制作了一个测试宏:

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL  "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Maximized
End Sub

我希望这是有帮助的。

更新 2:

只需使用W32_Window_State.Show_Default ,这是完整的宏:

Option Explicit

Enum W32_Window_State
    Show_Normal = 1
    Show_Minimized = 2
    Show_Maximized = 3
    Show_Min_No_Active = 7
    Show_Default = 10
End Enum

Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean

' Opens passed URL with default application, or Error Code (<32) upon error

    Dim lngHWnd As Long
    Dim lngReturn As Long

    lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
        vbNullString, WindowState)

    OpenURL = (lngReturn > 32)
End Function

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Default
End Sub

另一种选择是研究使用控件从 Word 内部控制 Internet Explorer。

是一个例子。

请注意,这仅适用于 IE(除非有 dll 版本的 Firefox 等)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM