openxlsx:read.xlsx如果工作表名称包含&&引用;性格

openxlsx:read.xlsx如果工作表名称包含&&引用;性格,r,excel,R,Excel,创建一个名为“测试1”、“S&P500 TR”和“SP500 TR”的.xlsx文件。在每张纸中放入一些随机内容,并将其保存为“Book1.xlsx” 运行: > a <- getSheetNames("Book1.xlsx") > a [1] "Test 1" "S&P500 TR" "SP500 TR" 首先检查您是否确实键入了名称S&P500 TR,而不是使用会改变任何内容的a[2] 或者,您可以使用readxl包进行导入 library(readx

创建一个名为“测试1”、“S&P500 TR”和“SP500 TR”的
.xlsx
文件。在每张纸中放入一些随机内容,并将其保存为“Book1.xlsx”

  • 运行:

    > a <- getSheetNames("Book1.xlsx")
    > a
    [1] "Test 1"    "S&P500 TR" "SP500 TR"
    

  • 首先检查您是否确实键入了名称
    S&P500 TR
    ,而不是使用会改变任何内容的
    a[2]

    或者,您可以使用
    readxl
    包进行导入

      library(readxl)
    
      X1 <- read_excel("C:/1.xls", sheet = "S&P500 TR")
    
    库(readxl)
    
    我遇到了同样的问题,但找到了解决办法。首先使用read.xlsx()加载工作簿。然后重命名有问题的工作表,以避免使用符号。要修复示例中的代码,请执行以下操作:

    wb = read.xlsx("Book1.xlsx")
    renameWorksheet(wb, "S&P500 TR", "NEW NAME")
    output = read.xlsx(wb, "NEW NAME")
    

    希望这有帮助

    首先加载工作簿,然后使用
    which
    grepl
    函数返回包含工作表名称的工作表编号(以这种方式完成时可以包含“&”字符)。这在我目前正在开发的应用程序中似乎运行得很好

    下面给出了一个(不完整的)示例,可以根据您的上下文轻松修改。在我的例子中,“i”是一个文件名(在许多文件上循环)。“玩具”代码如下:

    wb <- loadWorkbook(file = i)
    which( grepl("CAPEX & Depreciation", names(wb)) )
    

    wb我猜你运气不好。您的选择可能是:(1)重命名您的工作表;(2) 破解
    openxlsx::read.xlsx
    的内部代码来解决问题;(3) 四处寻找另一个XLS阅读器,它可以按照您希望的方式工作(例如,请参阅备选方案了解如何提供可复制的代码。我想知道您的操作系统和R版本。您好@Masoud它发生在我的win 7和Fedora 25机器上。R版本3.3.2和3.3.3分别感谢@Masoud。我实际上正在寻找一种替代方案来阅读excel和XLConnect,因此是openxlsx、 同样,尝试使用显式名称也没有什么区别。
    wb = read.xlsx("Book1.xlsx")
    renameWorksheet(wb, "S&P500 TR", "NEW NAME")
    output = read.xlsx(wb, "NEW NAME")
    
    wb <- loadWorkbook(file = i)
    which( grepl("CAPEX & Depreciation", names(wb)) )