如何使用R编程将.xlsb文件转换为.xlsx文件?
解决方法:用R转换.xlsb文件为.xlsx文件
方案1:通过reticulate调用Python的xlsb2xlsx工具
步骤1:安装依赖
- 安装R的reticulate包:
install.packages("reticulate")
- 用reticulate安装Python的
xlsb2xlsx库:
library(reticulate) py_install("xlsb2xlsx")
步骤2:执行转换
加载reticulate后直接调用工具完成转换:
library(reticulate) # 导入xlsb2xlsx模块 xlsb2xlsx <- import("xlsb2xlsx") # 输入原文件路径,指定输出文件路径 xlsb2xlsx$convert("file.xlsb", "file.xlsx")
方案2:用R原生包读取后写入(无需依赖Python)
使用xlsb包读取.xlsb内容,再用openxlsx写入为.xlsx:
单工作表转换
# 安装所需包 install.packages(c("xlsb", "openxlsx")) library(xlsb) library(openxlsx) # 读取xlsb文件(默认读取第一个工作表,可通过sheet参数指定) data <- read_xlsb("file.xlsb") # 写入为xlsx文件 write.xlsx(data, "file.xlsx")
多工作表转换
如果原文件包含多个工作表,可循环读取并写入到同一个xlsx的不同sheet:
library(xlsb) library(openxlsx) # 获取所有工作表名称 sheet_names <- get_sheet_names("file.xlsb") # 创建空工作簿 wb <- createWorkbook() # 循环处理每个工作表 for (sheet in sheet_names) { # 读取当前工作表数据 sheet_data <- read_xlsb("file.xlsb", sheet = sheet) # 添加工作表到工作簿 addWorksheet(wb, sheetName = sheet) # 写入数据 writeData(wb, sheet = sheet, x = sheet_data) } # 保存工作簿 saveWorkbook(wb, "file.xlsx", overwrite = TRUE)
内容的提问来源于stack exchange,提问作者joshbrows
相关产品推荐
相关产品推荐

