如何在R/Python中读取或批量转换.xlw格式Excel 4文件?
批量转换Excel 4 .xlw文件的解决方案
R 方案
使用 RDCOMClient 调用Excel自动化
若你的Windows系统安装了Microsoft Excel,可通过COM接口批量转换文件——这是最可靠的方式,因为Excel原生支持.xlw格式:
library(RDCOMClient) # 设置文件夹路径 input_dir <- "path/to/your/xlw/files" output_dir <- "path/to/save/converted/files" # 获取所有.xlw文件 xlw_files <- list.files(input_dir, pattern = "\\.xlw$", full.names = TRUE) # 初始化Excel应用 excel_app <- COMCreate("Excel.Application") excel_app[["Visible"]] <- FALSE # 后台运行,不显示窗口 excel_app[["DisplayAlerts"]] <- FALSE # 关闭警告提示 # 批量转换 for (file in xlw_files) { wb <- excel_app[["Workbooks"]]$Open(file) # 保存为.xlsx格式,也可改为"Excel97-2003 Workbook (*.xls)"存为xls output_path <- file.path(output_dir, paste0(tools::file_path_sans_ext(basename(file)), ".xlsx")) wb$SaveAs(output_path, FileFormat = 51) # 51对应.xlsx格式 wb$Close() } # 关闭Excel excel_app$Quit() rm(excel_app) gc()
注意:需先安装RDCOMClient包,Windows下可通过install.packages("RDCOMClient")安装,仅支持Windows系统。
Python 方案
使用 pywin32 调用Excel自动化
同样依赖Windows系统的Microsoft Excel,逻辑和R方案一致:
import os import win32com.client as win32 input_dir = "path/to/your/xlw/files" output_dir = "path/to/save/converted/files" # 创建输出文件夹(若不存在) os.makedirs(output_dir, exist_ok=True) # 初始化Excel应用 excel = win32.Dispatch("Excel.Application") excel.Visible = False excel.DisplayAlerts = False # 遍历所有xlw文件 for filename in os.listdir(input_dir): if filename.lower().endswith(".xlw"): file_path = os.path.join(input_dir, filename) wb = excel.Workbooks.Open(file_path) # 构造输出路径,保存为xlsx output_filename = os.path.splitext(filename)[0] + ".xlsx" output_path = os.path.join(output_dir, output_filename) # 51对应xlsx,56对应xls wb.SaveAs(output_path, FileFormat=51) wb.Close() # 关闭Excel excel.Quit() del excel
安装依赖:pip install pywin32,仅支持Windows系统。
跨平台方案:使用 libreoffice 命令行
若使用Linux/macOS,或不想依赖Excel,可借助LibreOffice的命令行工具批量转换,完全免费且跨平台:
- 先安装LibreOffice(官网下载免费版本)
- 打开终端运行对应命令:
# Linux/macOS libreoffice --headless --convert-to xlsx --outdir /path/to/output/dir /path/to/input/*.xlw # Windows(命令提示符) "C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to xlsx --outdir "C:\path\to\output\dir" "C:\path\to\input\*.xlw"
注意:LibreOffice对旧格式的兼容性略逊于Excel,若部分文件转换异常,优先使用Excel自动化方案。
免费软件方案
- LibreOffice Calc:除命令行批量转换外,也可手动导入单个文件后保存,但批量处理推荐用命令行模式。
- Gnumeric:开源电子表格软件,支持导入.xlw格式,可通过脚本或批量操作完成转换(部分系统默认预装,或官网免费下载)。
内容的提问来源于stack exchange,提问作者Irgendniemand
相关产品推荐
相关产品推荐

