0

在 RI 中,我尝试将 Excel 工作簿保存为二进制工作表 (.xlsb) 而不是标准(.xlsx 或 .xls)方法。使用 openxlsx 或 xlsx 之类的包不起作用,因为它们不会将文件转换为二进制格式。我一直在挖掘并找到了 excel.link 包,但它不断使我的 R 会话崩溃,并且似乎无法及时工作。

有谁知道实现这一目标的方法?

4

2 回答 2

0

可以使用 R 包 RDCOMClient 将 XLSX 文件转换为 XLSB

library(RDCOMClient)
path_XLSX_File <- "C:\\...\\xlsx_File.xlsx"
path_XLSB_File <- "C:\\...\\xlsb_File.xlsb"

xlApp <- COMCreate("Excel.Application")
xlApp[['Visible']] <- FALSE
xlWbk <- xlApp$Workbooks()$Open(path_XLSX_File)

xlWbk$SaveAs(path_XLSB_File, 50)
xlWbk$Close()
xlApp$Quit()

有关所有格式,请参阅https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/ff198017(v=office.14)。“XLSB”格式为“xlExcel12”。

于 2021-11-21T16:26:54.173 回答
0

不,Excel 二进制格式是 Microsoft 使用的专有编码/压缩格式,不共享。您只能在 excel 中查看和编辑二进制文件。有什么理由不能将它们保存为 csvs 或常规的 excel 文件?如果它太大,您可以将其保存为 gzip 文件

data.table::fwrite(file, "filename.gzip")
于 2021-06-15T21:46:27.447 回答