可以使用R编写Excel公式或数据验证吗?

时间:2015-04-27 14:17:01

标签: r xlsx xlconnect openxlsx

我正在尝试将R数据框写入Excel并希望添加具有Excel公式和/或数据验证值的其他单元格/列(例如,使用Excel中的“数据/验证”菜单提供允许的下拉列表细胞的值)

我看过R包:xlsx,XLConnect和openxlsx。这些非常适合编写单元,但不适用于公式数据验证设置

我目前认为我不得不使用AppleScript(在Mac上)或VBA解决方案来处理xlsx文件。如果可能的话,我想在R中完成所有操作,因此逻辑不必跨程序分开。

在这两者中:为单元格编写数据验证设置(与编写Excel公式相比)更为重要。用例是将R数据框写入Excel并包含用于进行更正的空列。对于空列,我想要为该列提供可接受值的下拉列表(例如“是”/“否”)。

提前致谢。

2 个答案:

答案 0 :(得分:2)

下面的示例显示了如何向Excel单元格添加下拉列表。

# Libraries
library(openxlsx)

# Create workbook
wb = createWorkbook()

# Add worksheet "Customers" to the workbook
addWorksheet(wb, "Customers")

# Create Customers dataframe
customers_df = data.frame("Name" = c("Alex", "Kate", "Mary"), "Gender" = 
c("male", "female", "female"))

# Add Customers dataframe to the sheet "Customers"
writeData(wb, sheet = "Customers", x = customers_df, startCol = 1)

# Add worksheet "Drop-down values" to the workbook
addWorksheet(wb, "Drop-down values")

# Create drop-down values dataframe
gender_values_df = data.frame("Gender" = c("male", "female"))

# Add drop-down values dataframe to the sheet "Drop-down values"
writeData(wb, sheet = "Drop-down values", x = gender_values_df, startCol = 
1)

# Add drop-downs to the column Gender on the worksheet "Customers"
dataValidation(wb, "Customers", col = 2, rows = 2:4, type = "list", value = 
"'Drop-down values'!$A$2:$A$3")

# Save workbook
saveWorkbook(wb, "D:/Customers.xlsx", overwrite = TRUE)

更多信息可以在这里找到:dataValidation

答案 1 :(得分:0)

作为在R和Excel之间来回切换的人,我建议您在这种情况下让Excel驱动工作流程。编写Excel宏以从R创建的文件导入数据或使用RExcel(Excel加载项),该文件允许从Excel交互式控制R会话。