13

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

4

6 回答 6

16

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

wb <- loadWorkbook(your_xlsx_file)
sheets <- getSheets(wb) 
于 2014-06-25T14:53:13.673 回答
7

是的,我使用xlsx包(就像XLConnect包一样)使用带有 Apache POI 代码的 Java 后端来做到这一点——因此它是跨平台的。

于 2012-09-12T02:19:17.967 回答
2

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

h <- odbcConnectExcel2007("file.xlsx")
sqlTables(h)
于 2012-09-12T05:04:31.457 回答
0

使用的单线解决方案openxlsx

openxlsx::getSheetNames('your/file.xlsx')
于 2020-04-15T15:34:07.957 回答
0

使用 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 中

于 2019-04-04T08:52:52.980 回答
0

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

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

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

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

于 2021-11-28T05:44:25.410 回答