从命令行转换为xml

时间:2018-05-24 12:54:42

标签: xml converter libreoffice-calc

以前的帖子在图形模式下执行我需要的内容:

Convert Calc(Excel) Data in XML in OpenOffice

是否可以使用命令行中的转换示例完成与上述.ods(.xls)到.xml完全相同的操作?

/保

到目前为止,我创建了XML过滤器,描述为“CustData”并运行此命令(尝试了所有三种变体):

libreoffice --convert-to xml:CustData --outdir ut/ outfile.xlsx
libreoffice --convert-to xml:"CustData" --outdir ut/ outfile.xlsx
libreoffice --convert-to xml[:CustData] --outdir ut/ outfile.xlsx


convert /home/paul/outfile.xlsx -> /home/paul/ut//outfile.xml using filter : CustData
Error: Please verify input parameters... (SfxBaseModel::impl_store <file:///home/paul/ut//outfile.xml> failed: 0x81a)

我在这里做错了什么?为什么在“ut”和“outfile.xml”之间会出现双斜线?

/保

1 个答案:

答案 0 :(得分:1)

错误代码failed: 0x81a表示过滤器名称错误。

如果过滤器名为“CustData”并且命令行命令是从在{{1}中创建过滤器的同一用户启动的,则前两个--convert-to xml:CustData--convert-to xml:"CustData"正在为我工​​作遵循Creating XML Filters ..

中的步骤

最后一个Libreoffice无效。这是对Starting the LibreOffice Software With Parameters中语法模式的误解。 --convert-to xml[:CustData]中的括号表示--convert-to output_file_extension[:output_filter_name]是可选的,而不是此处应使用括号。

因为您在:output_filter_name中设置了斜杠,所以会出现双斜杠。如果是当前目录/ ut,则应为--outdir ut/

但主要问题可能是,运行命令行命令的用户与创建过滤器的用户不同。过滤器存储在用户主目录中。我的过滤器例如在--outdir ut中。所以其他用户无法访问它们。

请关注Distributing an XML filter as package。将XML过滤器保存为来自一个用户的包,然后以另一个用户身份登录时从该包安装XML过滤器。

不用担心语句“XML过滤器设置对话框仅在文本文档打开时可用”。这不是真的。当calc文档打开时,它也可用。