2014-01-17 54 views
0

我有一個基於電子表格值生成HTML文檔(不涉及JS或CSS)的Excel VBA腳本。我將HTML內容作爲字符串存儲在單元格中。Excel - 將內容顯示爲HTML以便傳輸到Lotus Notes

我希望將此內容作爲HTML電子郵件從Lotus Notes發送。現在,我必須執行以下操作: 1.將單元格內容複製到.html文件 2.在Chrome中打開.html文件 3.複製Chrome的內容 4.將內容粘貼到Lotus Notes Composer

我的目標是削減此工作流程以減少步驟數量。

理想情況下,我可以直接從Excel複製並粘貼到Lotus Notes,但我可以設法獲得的是一些表格單元格,而不是粘貼HTML格式的塊。

第二種最理想的情況是單元打開帶有HTML內容的瀏覽器選項卡。我想避免做可移植性的服務器端腳本,所以POST,GET等基本上沒有問題。

任何有關此事的建議,將不勝感激。

+0

你的目標是自動發送一封電子郵件,而無需用戶干預?或者您的目標是在Lotus Notes客戶端中打開電子郵件消息,使用HTML填充消息正文,也許填充其他一些字段(例如To,Subject等)。()然後讓用戶做實際的發送? –

+0

第二種方法是我想要的。原因是有人需要手動檢查內容是最後一步。 – user1836155

回答

0

Notes客戶端的用戶界面不期望原始的HTML作爲輸入,所以我認爲你將有相當數量的工作要做,以解決這個問題。最有可能的是,您將不得不使用Notes OLE classes在用戶的郵件文件中創建草稿消息(即沒有SentDate或DeliveredDate項目的NotesDocument),併爲其提供一個HTML主體(使用NotesMimeXXX類並給它一個然後保存草稿,使用NotesDatabase.getView打開草稿視圖,遍歷視圖,直到找到具有正確主題的條目,將該條目作爲NotesDocument打開,最後使用NotesUIWorkspace.EditDocument方法和正確的NotesDocument的參數打開在UI編輯。

0

如果您知道哪裏有電子表格,並且你從它想要什麼樣的價值觀,我的解決辦法是寫的LotusScript例行後面備註形式的操作按鈕。

這個的目的代碼將使用OLE打開Excel文件,讀取必要的數據並在臨時文檔中構建NotesRichTextItem。然後保存臨時文檔,並關閉Excel工作表。使用未記錄的「NotesUIDocument.ImportItem」方法將保存的消息複製到當前的筆記文檔,然後刪除臨時文檔。完成。

在OLE中打開工作表後,代碼將非常類似於您的宏,但是您將無法使用ActiveDocument或Application等,並且必須聲明或替換任何Excel VBA常量你用過了。

菲爾

0

有不同的方法來實現你想要的。我會用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:\Temp\yourHtml.html") 

你需要編寫HTML代碼的文件系統(暫時的,之後將其刪除),但你不需要關心轉換到mime等方式...