我有一个Java代码,该代码从MongoDB中获取数据,然后使用Apache POI以格式化的方式创建一个包含该数据的excel(.xls)。
我的最终要求是将excel工作表中的最后一个工作表邮寄到一组邮件ID。我无法使用Java邮件API来执行此操作,因为不会向我提供邮箱的SMTP详细信息。 到目前为止,我正计划在生成的Excel中创建一个宏以发送数据。我创建的用于发送邮件的宏是:
Sub Send_Selection_Or_ActiveSheet_with_MailEnvelope()
'Working in Excel 2002-2016
Dim Sendrng As Range
On Error GoTo StopMacro
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Note: if the selection is one cell it will send the whole worksheet
Set Sendrng = Selection
'Create the mail and send it
With Sendrng
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
' Set the optional introduction field thats adds
' some header text to the email body.
.Introduction = "This is a test mail."
With .Item
.To = "iamnithinprakash@gmail.com"
.Subject = "My subject"
.Send
End With
End With
End With
StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False
End Sub
但是我不知道如何使用Java创建此宏。
答案 0 :(得分:2)
OP询问如何使用包含宏的Apache POI库创建Excel工作表。不幸的是:这是不可能的。
引用POI limitations:
无法创建宏。目前尚无计划支持宏。
幸运的是,它继续:
但是,读取和重写包含宏的文件将安全地保留宏。
那么,可以可以解决什么:
(或其中的一些变化,例如创建该空模板,进行复制并打开/更新其中一份副本)