【发布时间】:2021-08-31 16:39:33
【问题描述】:
在 R 中,我尝试将 Excel 工作簿保存为二进制工作表 (.xlsb) 而不是标准(.xlsx 或 .xls)方法。使用 openxlsx 或 xlsx 之类的包不起作用,因为它们不会将文件转换为二进制格式。我一直在挖掘并找到了 excel.link 包,但它不断使我的 R 会话崩溃并且似乎无法及时工作。
有谁知道实现这一点的方法吗?
【问题讨论】:
在 R 中,我尝试将 Excel 工作簿保存为二进制工作表 (.xlsb) 而不是标准(.xlsx 或 .xls)方法。使用 openxlsx 或 xlsx 之类的包不起作用,因为它们不会将文件转换为二进制格式。我一直在挖掘并找到了 excel.link 包,但它不断使我的 R 会话崩溃并且似乎无法及时工作。
有谁知道实现这一点的方法吗?
【问题讨论】:
不,Excel 二进制格式是 Microsoft 使用的专有编码/压缩格式,不共享。您只能在 excel 中查看和编辑二进制文件。有什么理由不能将它们保存为 csvs 或常规的 excel 文件?如果它太大,您可以将其保存为 gzip 文件与
data.table::fwrite(file, "filename.gzip")
【讨论】:
可以使用 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”。
【讨论】: