我的目标是填写 LibreOffice 计算表,并在用户单击发送按钮(并再次确认)时通过电子邮件静默发送单元格范围。
所以这有三个部分。
- 带有确认请求的按钮。(简单易行。)
- 选择 Cell Range 并转成富文本格式(还没找到)
- 从工作表中发送富文本电子邮件。(稍后将解决“沉默”部分)
我尝试使用 unoService 将范围复制到剪贴板,但它似乎过于复杂且充满错误。
这是我所拥有的:
''''Send by e-mail enriched text
Sub Main
Dim Doc, Sheet, Range, Rtf, Exec as Object
End Sub
'Confirm it
Sub SendTableApproval
If MsgBox ("Ready to email?", MB_YESNO + MB_DEFBUTTON2) = IDYES Then
CopyTable()
End If
End Sub
'Copy it
Sub CopyTable
Doc = ThisComponent
View = Doc.CurrentController
Frame = View.Frame
Sheet = Doc.Sheets.getByIndex(0)
Range = Sheet.getCellrangeByName("a1:f45")
Exec = createUnoService("com.sun.star.frame.DispatchHelper")
View.Select(Range)
Cells = View.getTransferable()
Exec.executeDispatch(Frame, ".uno:Deselect", "", 0, array())
'SimpleMailTo(Cells)
End Sub
'Mail it
Sub SimpleMailTo(body)
Dim launcher as object
Dim eAddress, eSubject, eBody, aHTMLanchor as string
launcher = CreateUnoService("com.sun.star.system.SystemShellExecute")
eAddress = "tu@domo.eg"
eSubject = "Cotidie agenda futuendane"
eBody = body
aHTMLanchor = "mailto:" & eAddress & "?subject=" & eSubject & "&&body=" & eBody
launcher.execute(aHTMLanchor, "", 0)
End Sub
经过三天对方法,属性,uno的研究,我仍然不知道。
我的问题是,简单地说,如何将可传输的内容转换为 HTML/RTF?