【问题标题】:List xlsx sheetnames with R使用 R 列出 xlsx 工作表名称
【发布时间】:2012-09-12 02:14:14
【问题描述】:

是否可以在 xlsx 文件中生成工作表名称列表?或者,我是否可以检查工作表名称是否存在,如果不存在,则继续执行某些指定功能?

【问题讨论】:

    标签: r xlsx


    【解决方案1】:

    使用 xlsx 库,您可以使用 getSheets() 获取现有工作簿中的工作表列表:

    wb <- loadWorkbook(your_xlsx_file)
    sheets <- getSheets(wb) 
    

    【讨论】:

    • 我想你想要名字(getSheets(wb))
    【解决方案2】:

    是的,我已经使用 xlsx 包做到了这一点,它(就像 XLConnect 包一样)使用带有 Apache POI 代码的 Java 后端 - 所以它是跨平台的。

    【讨论】:

    • 我对 getSheets 函数进行了掩饰,这正是我所需要的。
    【解决方案3】:

    您也可以使用 RODBC 包执行此操作:

    h <- odbcConnectExcel2007("file.xlsx")
    sqlTables(h)
    

    【讨论】:

      【解决方案4】:

      使用 R xlsx 包获取 excel 或工作簿文件表名称

      加载您的工作簿或 excel 文件,在我的情况下,例如excel文件的名称是“input_4_r.xlsx”

      > wb<-loadWorkbook("input_4_r.xlsx")
      

      查看文件列表,这里在我的示例中显示 2 张 在我的示例中,我没有命名第一张工作表并保留默认值 但是第二张表,我命名为“名称城市”,因此输出如下

      > getSheets(wb)
      $Sheet1
      [1] "Java-Object{Name: /xl/worksheets/sheet1.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml}"
      
      $`name city`
      [1] "Java-Object{Name: /xl/worksheets/sheet2.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml}"
      

      您可以看到工作表名称的名称如下

      > names(getSheets(wb))
      [1] "Sheet1"    "name city"
      

      获取工作表特定索引的名称,例如在我的情况下通过 [2] 获得第二张纸

      > names(getSheets(wb))[2]
      [1] "name city"
      

      *** 以上假设是 xlsx 包已安装并加载到 R 中

      【讨论】:

        【解决方案5】:

        使用openxlsx 的单线解决方案是

        openxlsx::getSheetNames('your/file.xlsx')
        

        【讨论】:

        • 您必须安装该软件包。 install.packages("openxlsx")
        【解决方案6】:

        只有这在我的情况下有效:

        library(openxlsx)
        sheetNames <- getSheetNames("filename.xlsx")
        

        以上解决方案均不适用于我的大 xlsx(>300 张):

        .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, 中的错误: java.lang.OutOfMemoryError: Java 堆空间

        【讨论】:

          猜你喜欢
          • 2019-01-17
          • 1970-01-01
          • 2018-10-14
          • 1970-01-01
          • 2017-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多