gpt4 book ai didi

r - 使用 XLConnect 的 appendWorksheet 函数向现有 Excel 表添加新行

转载 作者:行者123 更新时间:2023-12-04 20:32:38 26 4
gpt4 key购买 nike

我想要实现的是从 R 中的对象添加一行到 Excel 中已存在的表文件(读取“Excel 表格”中的表格)。

使用以下代码,我将行完美地添加到现有表中:

library(XLConnect)
setStyleAction(wb,XLC$"STYLE_ACTION.NONE")
wb <- loadWorkbook("test.xlsx")
appendWorksheet(wb, expense, sheet="expenses", header = FALSE)
saveWorkbook(wb)

这里的问题是我在 Excel 中有大量其他公式,使用的引用为 Expenses[@TDC]。例如。如果我添加该行,这些值将不是 Expenses 的一部分表自动。那有可能吗?

最佳答案

我建议在您的电子表格中编写一个简单的公式复制宏。你需要调用它test.xlsm而不是 test.xlsx , 当然。如果您的电子表格如下所示:

enter image description here

那么您的宏可能如下所示:

Option Explicit

Sub MyMacro()
Dim BottomRowOfData As Integer, BottomRowOfFormula As Integer, rowDiff As Integer

With ThisWorkbook.Worksheets("expenses")
BottomRowOfData = .Range("B1").End(xlDown).Row
BottomRowOfFormula = .Range("C1").End(xlDown).Row
rowDiff = BottomRowOfData - BottomRowOfFormula

If (rowDiff > 0) Then
.Range("C" & BottomRowOfFormula).Copy
Call .Range(.Range("C" & BottomRowOfFormula + 1), .Range("C" & BottomRowOfData)).PasteSpecial
End If
End With

' Save your work
ThisWorkbook.Save
End Sub

根据我对 this question on so 的回答,您可以从 R 调用 VBA 宏。 .为了完整起见,这是该问题的代码:
library(RDCOMClient)

# Open a specific workbook in Excel:
xlApp <- COMCreate("Excel.Application")
xlWbk <- xlApp$Workbooks()$Open("C:\\TEMP\\test.xlsm")

# this line of code is only necessary if you want to see your spreadsheet getting updated:
xlApp[['Visible']] <- TRUE

# Run the macro called "MyMacro":
xlApp$Run("MyMacro")

# Close the workbook and quit the app:
xlWbk$Close(FALSE)
xlApp$Quit()

# Release resources:
rm(xlWbk, xlApp)
gc()

关于r - 使用 XLConnect 的 appendWorksheet 函数向现有 Excel 表添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47822298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com