标签: rdcomclient

使用RDCOMClient打开数据框时内存泄漏

我正在尝试使用RDCOMClient包来动态打开数据帧到Excel.我有功能代码将数据框打开到Excel,但我遇到的问题是代码完成时rsession.exe没有释放从加载数据到Excel的内存资源.即使在关闭Excel应用程序后,内存资源也不会被释放.是否有我遗漏的东西,我可以用来从rsession.exe释放内存?我能够释放内存的唯一方法是关闭RStudio并再次打开它.

功能代码

in.xl <- function(data, headers = TRUE, rownames = FALSE) {
  require(RDCOMClient)

  # Attempt to coerce non dataframe data into a dataframe
  if (!is.data.frame(data)) {
    data <- as.data.frame(data)
  }

  # Set row range for data
  if (headers == TRUE) {
    d.row.start <- 2
    d.row.end <- nrow(data) + 1
  } else {
    d.row.start <- 1
    d.row.end <- nrow(data)
  }

  # Set column range for data
  if (rownames == TRUE) {
    d.col.start <- 2
    d.col.end <- ncol(data) + 1
  } else …
Run Code Online (Sandbox Code Playgroud)

memory-leaks r rdcomclient

11
推荐指数
1
解决办法
339
查看次数

如何使用R RDCOMClient检索Outlook收件箱电子邮件?

library(RDCOMClient)
## create outlook object
OutApp <- COMCreate("Outlook.Application")
Run Code Online (Sandbox Code Playgroud)

我想从名为"AUX"的Outlook文件夹中检索今天的电子邮件.解析电子邮件的标题,如果符合某些条件,我想解析某些字符串的电子邮件内容.

我设法写了一封来自R的电子邮件并将其发送出去,但到目前为止还无法检索电子邮件.

email outlook r rdcomclient

9
推荐指数
1
解决办法
7137
查看次数

通过outlook发送R Markdown输出作为正文电子邮件(RDCOMclient)

刚刚学习R Markdown语言并想知道我是否可以通过Outlook的Outlook发送身体电子邮件中的输出(使用RDCOMClient;我的办公室不使用gmail)

谢谢

outlook r outlook-vba r-markdown rdcomclient

8
推荐指数
1
解决办法
1559
查看次数

RDCOMClient:如何使用枚举对象或如何获取它们的对应值?

RDCOMclient程序包可用于连接Windows上的COM对象。在MSDN参考中,存在许多对应于值的枚举(例如,wdColorBlue对于蓝色,请参见此处)。这些可以直接在VBA代码中使用。

如何使用RDCOMClient处理枚举对象?是否有例如从R内检索枚举的对应值的方法?有一个功能,EnumValue但我看不到如何用于此目的。

一个小例子

下面的代码创建一个新的Word文档并在其中写入一些文本。段落更改为右对齐。在此2使用与枚举对应的整数wdAlignParagraphRight。我希望能够使用例如字符串"wdAlignParagraphRight"代替value 2。有没有办法做到这一点RDCOMclient

x <- COMCreate("Word.Application")            # create application
x[["visible"]] <- TRUE
x[["Documents"]]$Add()               
x[["Selection"]]$TypeText("hello")
p <- x[["ActiveDocument"]][["Paragraphs"]]$Item(1)  
p[["Alignment"]] <- 2
Run Code Online (Sandbox Code Playgroud)

r rdcomclient

7
推荐指数
1
解决办法
341
查看次数

使用RDCOMClient通过R中的Outlook发送电子邮件附件

我正在运行每日分析,通过我的Outlook电子邮件发出我想发送的文件.我使用的代码在这里有特色,并且工作得非常好,但它的附件部分从未起作用......

library(RDCOMClient)


OutApp <- COMCreate("Outlook.Application")


outMail = OutApp$CreateItem(0)

outMail[["To"]] = "gkinne@horizonmedia.com"
outMail[["subject"]] = "Bruh"
outMail[["body"]] = "Tester"
outMail[["Attachments"]]$Add("L:/Document.csv")

outMail$Send()
Run Code Online (Sandbox Code Playgroud)

原文在这里:

通过outlook在R中发送电子邮件

代码工作到附件部分,电子邮件甚至发送,只是没有附件.它吐出这个错误:

<checkErrorInfo> 80020009 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

email outlook r rdcomclient

7
推荐指数
2
解决办法
6045
查看次数

无法使用 rtools40 和 R 4.0 构建 RDCOMClient

不久前,我创建了 RDCOMClient 包的一个分支,以使其与 R 3.6 ( https://github.com/dkyleward/RDCOMClient ) 一起工作。人们现在再次遇到问题,因为它不适用于 R 4.0。这个问题似乎不太容易解决,我希望得到一些帮助。

如果我将 Rstudio 翻转回 R 3.6(和 rtools35),我可以在使用devtools::install_github(). 当我尝试使用 R 4.0(和 rtools40)时,程序包构建,我可以通过 COM 连接到应用程序。下面的第一行代码有效,xl是一个 COM 指针;然而,试图用它做任何事情(比如将 Excel 设置为可见)都会使 R 崩溃。

xl <-  RDCOMClient::COMCreate("Excel.Application")
xl[["Visible"]] <- TRUE
Run Code Online (Sandbox Code Playgroud)

同样,以上在 R 3.6 中有效。

有没有办法继续使用以前的 rtools 进行构建?我遇到了https://github.com/r-windows/rtools-backports#readme,它谈到使用 rtools35 继续构建包,所以我有希望,但我不明白如何实现。

或者,如果我可以对 R 或 cpp 代码进行细微的更改来解决我的问题,我会全力以赴。不过,我是 cpp 新手。

c++ r rdcomclient rtools

7
推荐指数
2
解决办法
2597
查看次数

使用R从Outlook电子邮件下载附件

我每个星期天都收到一封电子邮件附件(一个压缩文件夹).电子邮件的主题永远不会改变.我想找到包含指定主题行的最新电子邮件并下载附件.我是新的R用户,到目前为止我只找到了一种基于主题打印电子邮件正文的方法(来自stackoverflow上的其他问题之一如何使用R RDCOMClient检索Outlook收件箱电子邮件?).理想情况下,我想在指定日期找到收到指定主题的电子邮件,然后下载附件.有人可以指出我正确的方向.任何帮助将不胜感激.谢谢.

r rdcomclient

6
推荐指数
1
解决办法
5584
查看次数

访问excel文件时,在R中获取"<checkErrorInfo> 80020009 .COM(x,name,...)中的错误:"

我已经自动化了从R,使用OpenxlsxRDCOMClient包访问VBA宏的过程.以下是代码:

功能:

OpenExcel_5param <- function(directory,filename, MacroName, param1, param2, 
param3,param4, param5)
{

 # Open a specific workbook in Excel:
   data <- paste(c(directory,'/',filename,'.xlsm'), collapse = '')
   xlApp <- COMCreate("Excel.Application")
   xlWbk <- xlApp$Workbooks()$Open(data)

 # this line of code might be necessary if you want to see your spreadsheet:
   xlApp[['Visible']] <- TRUE 
   xlApp$Run(MacroName,param1,param2, param3, param4, param5)

 # Close the workbook and quit the app:
   xlWbk$Close(FALSE)
   xlApp$Quit()

 # Release resources:
   rm(xlWbk, xlApp)
   gc()
}
Run Code Online (Sandbox Code Playgroud)

访问此功能的代码:

OpenExcel_5param(Common_folder,VBA_CodeFileName,"ConsumptionValidation.MARM",r_extracts,"1.UniqueUPC_Nielsen",10000,original_files,"MARM")

当我运行代码时,我收到以下错误:

80020009
.COM中的错误(x,名称,...):

当我第一次运行代码时,它工作正常.从第二次开始,它开始给我这个错误.相同的代码在另一台计算机上运行正常.在第三台计算机上,如果我保持excel文件打开,它可以正常工作,但在我的计算机上根本不工作.我尝试过不同版本的R,但没有帮助.

r rdcomclient openxlsx

6
推荐指数
1
解决办法
1390
查看次数

RDCOMClient 包突然给我:不支持 InterfaceSupportsErrorInfo

我已经在 R 中使用 RDCOMClient 包一年多了,没有出现任何问题。

现在突然给我一个错误:

<checkErrorInfo> 80070057 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147024809
Error: The parameter is incorrect.
Run Code Online (Sandbox Code Playgroud)

这是我的代码(出于隐私原因我已经清理了代码):

library(RDCOMClient)
library(lubridate)


rmarkdown::render("/report.Rmd", encoding = "UTF-8")

OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)


text <- paste("Attached is the report")
path_to_attachment <- "W:\\Rwd\\report\\report_this_month\\report.pdf"



outMail[["to"]] = "user@xyz.is"
outMail[["subject"]] = "Monthly report"
outMail[["htmlbody"]] = text
outMail[["attachments"]]$Add(path_to_attachment)

outMail$Send()

rm(OutApp, outMail)
Run Code Online (Sandbox Code Playgroud)

我计划发送电子邮件的其他脚本很少。其中之一使用blastula包(也通过Outlook发送电子邮件),我在那里没有问题。

知道为什么我会收到此错误吗?

email r rdcomclient

6
推荐指数
1
解决办法
2285
查看次数

COM 对象方法的完整列表

我想知道哪些函数可以与 RDCOMClient 对象一起使用。

例如,要创建电子邮件,我们可以使用

OutApp <- COMCreate("Outlook.Application")
# create an email 
outMail = OutApp$CreateItem(0)
Run Code Online (Sandbox Code Playgroud)

outMail[["subject"]],outMail[["HTMLbody"]]outMail[["Attachments"]]$Add(filepath)

但我怎样才能获得一份全面的清单呢?

RDCOMClient 文档已过时,并且列出的功能(例如getFuncs()和 )getElements()在包中不再可用。尝试names()找出引擎盖下的内容没有给我任何结果,并且

install.packages("remotes")
remotes::install_github("omegahat/SWinTypeLibs")
Run Code Online (Sandbox Code Playgroud)

也给出一个错误。关于如何检查 Outlook 中的对象有什么想法吗?

com outlook vba r rdcomclient

6
推荐指数
1
解决办法
2345
查看次数

标签 统计

r ×10

rdcomclient ×10

outlook ×4

email ×3

c++ ×1

com ×1

memory-leaks ×1

openxlsx ×1

outlook-vba ×1

r-markdown ×1

rtools ×1

vba ×1