防止 Libreoffice 转换后的 CSV 剥离尾随零?[关闭]

Prevent Libreoffice converted CSV from stripping trailing zero? [closed]

提问人:Jonathan Cross 提问时间:1/15/2023 最后编辑:Jonathan Cross 更新时间:1/15/2023 访问量:65

问:


这个问题似乎与特定的编程问题、软件算法或程序员主要使用的软件工具无关。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释在哪里可以回答该问题。

10个月前关闭。

我有一个 Calc 电子表格,其中包含当格式化为数字时,结果为 1.00(又名格式代码=ROUND(1.001,2)-1234.570.00)

但是,当我通过尾随将其转换为 CSV 时,会删除导致 .如何将正确的输出到 CSV 中?libreoffice --convert-to csv011.00

注意:如果我提高精度,那么预期的是输出。=ROUND(1.001,3)1.001

将单个单元格显式转换为 TEXT(例如)有效,但我想要在文档级别工作的东西,因为这很容易出错/乏味。=TEXT(ROUND(1.001,2), "0.00")

导出到 CSV 浮动精度 libreoffice-calc

评论

0赞 Luuk 1/15/2023
将其导出为文本,因为数值等于数值,因此无需导出尾随零。1.001
0赞 Jonathan Cross 1/15/2023
@Luuk 如何通过?libreoffice --convert-to csv
0赞 Karl Knechtel 1/15/2023
这似乎是在询问如何使用 Libreoffice 程序本身,而不是编写代码来处理其输出。Libreoffice 只是一个普通的电子表格程序;这绝不是程序员主要使用的工具。问题似乎也不在于如何编写电子表格公式,而只是关于从程序中保存输出文件。仅仅为应用程序提供命令行界面并不能使它“编程”使用它(无论如何,还有其他网站可以做这种事情,比如Unix和Linux)。简而言之,我看不出这是怎么回事。
1赞 tohuwawohu 1/15/2023
请参阅有关 CSV 筛选器参数的文档。在 Windows 10 上,以下工作原理:.\soffice --convert-to "csv:Text - txt - csv (StarCalc):44,34,0, , , ,false,false,true,false" --outdir C:\TEMP\ C:\TEMP\round.ods
0赞 tohuwawohu 1/15/2023
并查看 Luuk 的评论,其中包含正确的超链接......

答:

1赞 Luuk 1/15/2023 #1

“我怎样才能将正确的 1.00 输出到 CSV 中?” 简短的回答是你不能。这是因为CSV是一种糟糕的文件格式(请参阅:https://www.google.com/search?q=whyt+is+csv+a+bad+file+format )

但是当你在OpenOffice中有一个这样的文件时(让我们命名它: ):Untitled 1.odsenter image description here

并且您需要/想要使用尾随零导出它,您可以执行以下操作:

C:\Program Files\LibreOffice\program\soffice --convert-to html "Untitled 1.ods"

哪个生成和 Html 文件名Untitled 1.html

在此之后,您可以使用 xmlstarlet 来执行 这:

xmlstarlet sel -t -m //tr -m td -v . -o "," -b -n "Untitled 1.html"

这将产生下一个输出:

a,b,c,d,e,f,
1,00,2,00,3,00,1,00,2,00,3,00,
4,00,5,00,6,00,4,00,5,00,6,00,
7,00,8,00,9,00,7,00,8,00,9,00,

这之所以有效,是因为导出到 HTML 会保留应用于单元格的格式,而导出到 CSV 只会导出值,而不关心所做的任何格式设置。

P.S. 输出只是说明了为什么“逗号分隔值 (CSV)”不应该被发明😁。

评论

1赞 tohuwawohu 1/15/2023
长篇大论的回答是:“是的,你可以......”。请参阅我对这个问题的评论。
2赞 Luuk 1/15/2023
过滤器选项的完整(深层链接)是:help.libreoffice.org/7.4/ro/text/shared/guide/...
0赞 tohuwawohu 1/15/2023
讨厌 LO 文档......感谢您添加正确的链接...
1赞 Luuk 1/15/2023
@tohuwawohu:文档是我不知道这些过滤器的原因之一......