r - 使用 R 操作 Excel 文件
问题描述
我想使用 R 编辑现有的 Excel 文件。例如,ExcelFile_1 有数据,我需要将 ExcelFile_1 中的数据放入另一个名为 ExcelFile_2 的文件中。这基于列名和行名。
ExcelFile_1:
存储发货数量
1111 100
2222 200
ExcelFile_2:
存储发货数量
1111
2222
如果我正在使用数据框,我通常会执行
ExcelFile_2$ Shipped Qty
<- ExcelFile_1$ Shipped Qty
[match(ExcelFile_1$ Store #
, ExcelFile_2$ Store #
)
上面的行适用于我的数据框,但我不知道如何在使用 XLConnect 包写入工作表时放置此公式。我所看到的只是下面提到的选项。writeWorksheet(对象,数据,工作表,startRow,startCol,标题,行名)
我不想编辑为数据框并将数据框另存为现有/新 Excel 文件中的另一个“工作表”,因为我想保留 ExcelFile_2 格式。
例如:我想使用另一张表中的值更改 ExcelFile_2 单元格“B2”的值。
有人可以帮我解决上述问题吗?
解决方案
假设您的文件存储在您的主目录中并命名为one.xlsx
and two.xlsx
,您可以执行以下操作:
library(XLConnect)
# Load content of the first sheet of one.xlsx
df1 <- readWorksheetFromFile("~/one.xlsx", 1)
# Do what you like to df1 ...
# Write df1 to the first sheet of two.xlsx
wb2 <- loadWorkbook("~/two.xlsx")
writeWorksheet(wb2, df1, sheet = 1)
saveWorkbook(wb2)
如果需要,您还可以在两者中使用 andstartRow
来指定确切的行和列,并指定是否要读取/写入标题。startCol
readWorksheetFromFile()
writeWorksheet()
header
推荐阅读
- r - 使用 stringr 转换数据(一列)
- java - 执行 JAR 时出现 JENA 错误 TurtleParseException
- excel - 带有 VBA 的 Telegram Bot DeleteMessage ID
- vue.js - VueJs // V-for 和 v-modal // 点击按钮后的数据更新问题
- java - STS/Eclipse 未通过 vmargs 运行配置
- c# - 在 Unity 中建立组件之间关系的良好做法是什么?
- php - PHPSpreadsheet 生成错误“INDEX() 函数的参数数量错误:给定 5,预期在 1 到 4 之间”
- knex.js - 如何在 feathers.js/knex 服务中使用 jsonb 运算符“@>”进行搜索
- javascript - 无法弄清楚如何将 Steam Web API 传递给 Int64
- python - 如何删除列表中的最大变量