2016-12-22 2 views
2

Я могу приложить файл excel в Outlook по пакету RDCOMClinet. но как я могу показать содержимое листа excel в теле письма R? Предположим, что таблица и график содержатся на листе.Как показать лист excel в теле Outlook с помощью R

library(RDCOMClient) 
## init com api 
OutApp <- COMCreate("Outlook.Application") 
## create an email 
outMail = OutApp$CreateItem(0) 

## configure email parameter 
outMail[["To"]] = "[email protected]" 
outMail[["subject"]] = paste0("Report ", Sys.Date() - 1) 

# attach a file via its directory 
dirs <- dir(getwd(), full.names = TRUE) 
outMail[["Attachments"]]$Add(dirs) 

# insert an excel worksheet from attachment or local drive 
outMail[["HTMLBody"]] = ? 

ответ

2

Для табличной части, вы могли бы сделать, например

library(RDCOMClient) 
library(openxlsx) 
library(xtable) 

OutApp <- COMCreate("Outlook.Application") 
outMail = OutApp$CreateItem(0) 
outMail[["To"]] = "[email protected]" 
outMail[["subject"]] = paste0("Report ", Sys.Date() - 1) 

wb <- createWorkbook() 
addWorksheet(wb, "S1") 
writeDataTable(wb, "S1", x = head(iris)) 
saveWorkbook(wb, tf <- tempfile(fileext = "xlsx")) 
df <- read.xlsx(tf) 
df_html <- print(xtable(df), type="html", print.results=FALSE) 

outMail[["Attachments"]]$Add(tf) 
outMail[["HTMLBody"]] = sprintf(' 
Hello world, here is the table: 
%s 
Merry Christmas & a happy New Year! 
', df_html) # add your html message content here 
outMail$Send() 

enter image description here

Я не знаю вариант для штурманской части. Может быть, встроить таблицу Excel в электронную почту Outlook и проверить полученный HTML?