可以使用 R 编写 Excel 公式或数据验证吗?
Possible to write Excel formulas or data validation using R?
我正在尝试将 R 数据框写入 Excel 并希望添加额外的 cells/columns 具有 Excel 公式 and/or 数据验证值(例如使用Data/Validation Excel 中的菜单提供单元格允许值的下拉列表)
我查看了 R 包:xlsx、XLConnect 和 openxlsx。这些非常适合编写 单元格 但不是 公式 或 数据验证设置 。
我目前认为我必须求助于 post-使用 AppleScript(在 Mac 上)或 VBA 解决方案处理 xlsx 文件。如果可能的话,我想在 R 中全部完成,这样逻辑就不必跨程序拆分。
两者中:为单元格编写 数据验证 设置(相对于编写 Excel 公式)更为重要。用例是将 R 数据帧写入 Excel 并包括用于进行更正的空列。对于空列,我想为该列提供可接受值的下拉列表(例如 "Yes"/"No")。
提前致谢。
作为在 R 和 Excel 之间来回切换的人,我建议您让 Excel 在这种情况下驱动工作流程。要么编写 Excel 宏以从 R 创建的文件中导入数据,要么使用 RExcel(一个 Excel 插件)允许从 [=12= 交互式控制 R 会话].
下面的示例显示了如何将下拉列表添加到 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:$A")
# Save workbook
saveWorkbook(wb, "D:/Customers.xlsx", overwrite = TRUE)
可在此处找到更多信息:dataValidation
我正在尝试将 R 数据框写入 Excel 并希望添加额外的 cells/columns 具有 Excel 公式 and/or 数据验证值(例如使用Data/Validation Excel 中的菜单提供单元格允许值的下拉列表)
我查看了 R 包:xlsx、XLConnect 和 openxlsx。这些非常适合编写 单元格 但不是 公式 或 数据验证设置 。
我目前认为我必须求助于 post-使用 AppleScript(在 Mac 上)或 VBA 解决方案处理 xlsx 文件。如果可能的话,我想在 R 中全部完成,这样逻辑就不必跨程序拆分。
两者中:为单元格编写 数据验证 设置(相对于编写 Excel 公式)更为重要。用例是将 R 数据帧写入 Excel 并包括用于进行更正的空列。对于空列,我想为该列提供可接受值的下拉列表(例如 "Yes"/"No")。
提前致谢。
作为在 R 和 Excel 之间来回切换的人,我建议您让 Excel 在这种情况下驱动工作流程。要么编写 Excel 宏以从 R 创建的文件中导入数据,要么使用 RExcel(一个 Excel 插件)允许从 [=12= 交互式控制 R 会话].
下面的示例显示了如何将下拉列表添加到 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:$A")
# Save workbook
saveWorkbook(wb, "D:/Customers.xlsx", overwrite = TRUE)
可在此处找到更多信息:dataValidation