Мне нужно ежедневно загружать два отдельных файла из Outlook и объединять их для проведения анализа ежедневного отчета. Используя код из Загрузить вложение из электронного письма Outlook, используя R , мне удалось получить первый файл для загрузки в порядке.
library(RDCOMClient)
library(readxl)
library(xlsx)
library(tidyverse)
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
"urn:schemas:httpmail:subject = 'Recapture JFC'"
)
Sys.sleep(10)
results <- search$Results()
results$Item(1)$ReceivedTime() # Received time of first search result
as.Date("1899-12-30") + floor(results$Item(1)$ReceivedTime()) # Received date
for (i in 1:results$Count()) {
if (as.Date("1899-12-30") + floor(results$Item(i)$ReceivedTime())
== as.Date(Sys.Date())) {
email <- results$Item(i)
}
}
attachment_file <- tempfile()
email$Attachments(1)$SaveAsFile(attachment_file)
recap <- read_excel(attachment_file)
Думая, что загрузка второго файла просто перезапишет первый временный файл, а затем создать новую переменную с нужными данными, я сначала попытался изменить «httpmail: subject» на подходящее имя файла, думая, что это будет работать.
library(RDCOMClient)
library(readxl)
library(xlsx)
library(tidyverse)
outlook_app_a <- COMCreate("Outlook.Application")
search_a <- outlook_app_a$AdvancedSearch(
"Inbox",
"urn:schemas:httpmail:subject = 'ROR'"
)
Sys.sleep(10)
results_a <- search_a$Results()
results_a$Item(1)$ReceivedTime() # Received time of first search result
as.Date("1899-12-30") + floor(results_a$Item(1)$ReceivedTime()) # Received date
for (a in 1:results_a$Count()) {
if (as.Date("1899-12-30") + floor(results_a$Item(a)$ReceivedTime())
== as.Date(Sys.Date())) {
email_a <- results_a$Item(a)
}
}
attachment_file_a <- tempfile()
email_a$Attachments(1)$SaveAsFile(attachment_file_a)
ror <- read_excel(attachment_file_a)
Неверно. Поэтому по какой-то причине я изменил все имена переменных на уникальные, но ничего не изменилось. Я получил ошибку.
checkErrorInfo> 80020009
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.
Это также создаст новый файл, но с данными первых файлов. Есть предложения?