Excel-将内容显示为HTML,以便传输到Lotus Notes



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

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

我的目标是精简这个工作流程,以减少步骤的数量。

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

第二种最理想的情况是单元格打开一个包含HTML内容的浏览器选项卡。为了便于移植,我希望避免编写服务器端脚本,所以POST、GET等在很大程度上是不可能的。

如对此事有任何意见,我们将不胜感激。

Notes客户端的UI不期望原始HTML作为输入,所以我认为您需要做大量的工作才能绕过这一点。最有可能的情况是,您将不得不使用Notes OLE类在用户的邮件文件中创建一个草稿消息(即,没有SentDate或DeliveredDate项目的NotesDocument),为其提供一个HTML正文(使用NotesTimeXXX类,并为其提供唯一的主题,然后保存草稿,使用NotesDatabase.getView打开Drafts视图,遍历该视图,直到找到主题正确的条目,将该条目作为NotesDocument打开,最后使用NotesUIWorkspace.EditDocument方法和正确的NotesDocument参数在UI中打开进行编辑。

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

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

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

Phil

有不同的方法可以实现您想要的。我会使用OLE/COM:

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

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:TempyourHtml.html" )

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

最新更新