【问题标题】:Excel - Show content as HTML for transfer to Lotus NotesExcel - 将内容显示为 HTML 以传输到 Lotus Notes
【发布时间】:2014-01-21 23:32:07
【问题描述】:

我有一个 Excel VBA 脚本,它根据电子表格值生成 HTML 文档(不涉及 JS 或 CSS)。我将 HTML 内容作为字符串存储在单元格内。

我希望将此内容作为 HTML 电子邮件从 Lotus Notes 发送。现在,我必须执行以下操作: 1. 将单元格内容复制到 .html 文件中 2.在Chrome中打开.html文件 3.从Chrome复制内容 4. 将内容粘贴到 Lotus Notes Composer

我的目标是精简此工作流程以减少步骤数。

理想的情况是我能够直接从 Excel 复制和粘贴到 Lotus Notes,但我所能得到的只是一些表格单元格,而不是粘贴的 HTML 格式的块。

第二个最理想的情况是单元格打开带有 HTML 内容的浏览器选项卡。我想避免为可移植性而编写服务器端脚本,因此 POST、GET 等在很大程度上是不可能的。

我们将不胜感激。

【问题讨论】:

  • 您的目标是在没有用户干预的情况下自动发送电子邮件吗?或者您的目标是在 Lotus Note 客户端中打开一封电子邮件,用 HTML 填充邮件正文,也许填充一些其他字段(例如,收件人、主题等(),然后让用户执行实际发送?
  • 第二种方法是我想要的。原因是最后一步仍然需要有人手动检查内容。

标签: html excel lotus-notes


【解决方案1】:

Notes 客户端的 UI 不期望原始 HTML 作为输入,因此我认为您需要做大量工作才能解决这个问题。很可能您将不得不使用Notes OLE classes 在用户的邮件文件中创建草稿消息(即,没有 SentDate 或 DeliveredDate 项目的 NotesDocument),给它一个 HTML 正文(使用 NotesMimeXXX 类,并给它是一个唯一的主题,然后保存草稿,使用 NotesDatabase.getView 打开草稿视图,浏览视图直到找到具有正确主题的条目,将该条目作为 NotesDocument 打开,最后使用 NotesUIWorkspace.EditDocument 方法在 UI 中打开以进行编辑的正确 NotesDocument 参数。

【讨论】:

    【解决方案2】:

    如果您知道电子表格在哪里,以及想要从中获得什么值,我的解决方案是在备忘录形式的操作按钮后面编写一个 LotusScript 例程。

    此代码的目的是使用 OLE 打开 Excel 文件,读取必要的数据并在临时文档中构建 NotesRichTextItem。然后保存临时文档,并关闭 Excel 工作表。使用未记录的“NotesUIDocument.ImportItem”方法将保存的消息复制到当前的便笺文档,然后删除临时文档。完成。

    在 OLE 中打开工作表后,代码将与您的宏非常相似,但您将无法使用 ActiveDocument 或 Application 等,并且您必须声明或替换您的任何 Excel VBA 常量用过。

    菲尔

    【讨论】:

      【解决方案3】:

      有不同的方法来实现你想要的。我会使用 OLE/COM:

      在您的 Excel-Script 中只需编写如下代码:

      Dim ws As Object
      Dim ses as Object
      Dim mailDb as Object
      Dim memo as Object
      Dim uidoc as Object
      
      REM "These lines will start the Lotus Notes- Client if it is not already started"
      Set ws = CreateObject("Notes.NotesUIWorkspace")
      Set ses = CreateObject("Notes.NotesSession")
      
      REM "you might need these lines to get the Lotus Notes Window in focus"
      Set WshShell = CreateObject("WScript.Shell")
      
      REM "In version 9 the windowtitle will be different..."
      WshShell.AppActivate ("Lotus Notes")
      
      REM "Get the users maildatabase"
      Set mailDb = ses.GetDatabase("","")
      Call mailDb.OpenMail
      
      REM "Create a new mail"
      Set memo = mailDb.CreateDocument
      Call memo.ReplaceItemValue( "Form", "Memo" )
      
      REM "Open the mail in frontend"
      Set uidoc = ws.EditDocument(True,memo)
      
      REM "Switch to Body field"
      Call uidoc.GotoField( "Body" )
      
      REM "Here comes the magic..."
      Call uidoc.Import( "HTML File", "C:\Temp\yourHtml.html" )
      

      您需要将 html 代码写入文件系统(暂时的,之后删除它),但这样您就不需要注意转换为 mime 等...

      【讨论】:

        猜你喜欢
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-17
        • 1970-01-01
        相关资源
        最近更新 更多