【问题标题】:Converting xls to semicolon delimited csv with soffice commandline使用 soffice 命令行将 xls 转换为分号分隔的 csv
【发布时间】:2016-06-15 03:59:57
【问题描述】:

我正在尝试使用 soffice 将目录中的 xls 文件转换为 csv 格式。

    soffice --headless --convert-to csv *

它给出了逗号分隔的版本(显然)。现在我想获取分号分隔的 csv。

我想用 vim 命令将逗号替换为分号。

    :%s/,/;/g

但这不正确,因为它取代了有意保留在原始内容中的逗号。从 xls 转换为 csv 时必须分隔。

如何使用 soffice 命令行获取分号分隔的 csv?

【问题讨论】:

  • soffice --convert-to csv:"Text - txt - csv (StarCalc)":59,34,0,1,1 -outdir /some/path *。有关详细信息,请参阅wiki
  • @lcd047, :"Text - txt - csv (StarCalc)" 用于过滤输入文件,数字用于选择编码格式。 wiki 中没有更改分隔符的选项。
  • 你真的试过我提到的命令行吗?再次阅读Filter Options for the CSV Filter 部分。分隔符是第一个数字。 wiki 中的44 是逗号的(十进制)ASCII 码,而上面的59 是分号的ASCII 码。
  • @lcd047,我确实尝试过。它返回了一个错误,说要重新验证输入参数。不知何故,我错过了 wiki 页面的某些部分。我会再经历一遍。
  • @lcd047,您的解决方案工作得非常好。引发错误的原因是 libre office 版本。我正在使用不支持 ouput_filter_options 的“LibreOffice 4.2.8.2 420(Build:2)”。它适用于 LO 4.3* 版本。谢谢。我将其发布为答案:)

标签: excel csv soffice


【解决方案1】:

终于,我得到了答案。添加 output_filter_options 就像一个魅力。

    --convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files

这个wiki link 帮助了。这是我所做的,

    soffice --headless --convert-to csv:"Text - txt - csv (StarCalc)":59,34,0,1,1 *.xls

注意:它适用于 libre office 4.3 或更高版本。

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 2017-01-11
    • 2012-09-18
    • 1970-01-01
    • 2010-12-23
    • 2018-04-02
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    相关资源
    最近更新 更多