命令行使用libreoffice --convert-to转CSV时如何指定分隔符
解决方案
LibreOffice命令行模式支持自定义CSV导出分隔符,你可以直接通过指定CSV过滤器参数实现竖线分隔,无需额外转换步骤。
直接使用LibreOffice一步转换命令
libreoffice --headless --convert-to "csv:Text - txt - csv (StarCalc):124,34,0" 你的Excel文件名.xlsx
参数说明
--headless:无界面运行模式,不会弹出LibreOffice窗口,适合服务器/命令行场景使用- 过滤器参数中
124是竖线|的ASCII编码,用来指定字段分隔符 34是双引号的ASCII编码,指定字段内容的包裹符,避免字段内包含竖线时出现错位- 最后一位
0指定编码格式为UTF-8,也可以根据需求调整为其他编码对应的数值
注意事项
- 执行转换命令前建议先关闭所有已打开的LibreOffice进程,避免冲突导致转换失败,可执行
pkill soffice结束相关进程 - 批量转换多个Excel文件时,直接将命令中的单个文件名替换为
*.xlsx(根据实际文件后缀调整为xls等即可)
替代方案(已生成逗号分隔CSV时使用)
如果已经生成了逗号分隔的CSV文件,可以使用csvkit工具直接转换分隔符:
- 先安装csvkit:Debian/Ubuntu系执行
apt install csvkit,RHEL/CentOS系执行yum install csvkit - 执行转换命令:
csvformat -D '|' 原逗号分隔CSV文件.csv > 新竖线分隔CSV文件.csv
内容的提问来源于stack exchange,提问作者collegestudent
相关产品推荐
相关产品推荐

