基本上,每天早上都会有一些excel报告通过电子邮件发送给我们。我将它们直接下载到指定的驱动器上,然后在R中处理它们。
问题是,在R中运行我的脚本之前,我必须手动打开每个文件并保存它们。如果不是这样,将会发生这种情况:

当我进入并手动打开并保存文件并重新运行脚本时。我得到了正确的结果:

首先,你们知道为什么会发生这种情况吗?其次,有没有一个函数可以让我打开这些文件并保存它们。我确实尝试过openxlsx。但是,我仍然需要手动按下保存按钮。
下面是我创建的用于导入文件的函数:
store.FUN = function(x)
{
m = as.data.frame(read_excel(file))
names(m) = c(1:length(m))
m[1, 1] = str_sub(m[2, 1], 13)
m = bind_rows((m)[1, ], subset(m, (m)[1] == "Total Income"))
m[2, 1] = m[2, 2]
m = m[-c(2)]
return(m)
}
district_1.stores = sapply(store.file, store.FUN, simplify=FALSE) %>%
bind_rows(.id = "Store ID")谢谢!
编辑:所以看起来单元格是公式化的:


但是,如果我什么也不做,只保存文件并返回到R来执行脚本,数字就会很好地引入。
下面是excel文件的示例:enter image description here
发布于 2021-09-27 12:13:01
我花时间在openxlsx的github上发布了这个问题。
这不是一个bug,这是从Excel导入/导出到Excel时的一个内置“问题”,对于所有这样的包都是如此。如果Excel工作表包含公式,开发人员会建议TO做什么:首先在Excel中打开文件,保存它,然后才将其导入R。这并没有回答to的问题(即如何通过R自动打开和保存Excel文件),但我仍然发布这个答案,因为它添加了一些有用的上下文。
https://github.com/ycphs/openxlsx/issues/261和https://github.com/ycphs/openxlsx/issues/188#issuecomment-832591241
发布于 2021-09-25 10:00:55
实际上,我发现我可以使用R中的"reticulate“包来运行python模块来达到这个目的。
感谢大家的帮助!
https://stackoverflow.com/questions/69322857
复制相似问题