如何使用R中的数据透视表更新多个单独的Excel文件?

我构build了一个从数据仓库中提取的脚本,并以一种格式清理数据,以导出为csv文件。 我把这个文件粘贴到一个Excel文件中,该文件在另一个选项卡上已经有一个带切片器的数据透视表。 问题是,我正在使用Excelmacros为每个销售代表创build一份自己的销售报表。 有300个销售代表,我正在发送这个独特的报告。 现在,我使用一个Excel VBAmacros创build个人报告,并通过Outlook将其发送到每个销售代表,这需要很长的时间,并减慢我的笔记本电脑。

有没有办法使用R来自动更新每个销售代表数据的Excel文件,并刷新数据透视表,而无需单独打开它们? 我也想发送一个自动化的电子邮件,附加Excel文件,并通过Outlook发送给每个销售代表。 我已经通过R而不是以循环的方式完成了文本和CSV文件,超过100个销售代表。

为了将数据从R发送到Excel,我使用了Gregory Demin的excel.link包(我相信这是一个仅限于Windows的包)。 我发现它最有用。 https://cran.r-project.org/web/packages/excel.link/excel.link.pdf以下是Windows上的示例工作stream程:

假设您的对象d下的r会话中有一个data.frame,并且您有一个保存在c:\mybook.xlsb下的Excel工作簿

 # kill an existing Excel process running (if any) shell("taskkill /im EXCEL.exe /f /t") # open a workbook from 'c:\\mybook.xlsb' xl.workbook.open("c:\\mybook.xlsb") xl.workbook.activate("mybook.xlsb") mybook = xl.get.excel() # paste the data from dataframe object `d` to the active sheet in cell (1,1) which corresponds to cell A1 xl.write(d,row.names=FALSE,xl.rng=mybook[["Activesheet"]]$Cells(1,1)) # activate a different sheet named 'mysheet' xl.sheet.activate("mysheet") # do more stuff with 'mysheet' here... # save your workbook to a different copy once done xl.workbook.save("c:\mybook_current_version".xlsb")) # kill Excel process again to quit Excel shell("taskkill /im EXCEL.exe /f /t") 

检查文档更多的例子。

要发送带有附件的电子邮件,请查看sendmailR软件包。