如何使用 LibreOffice Calc 从格式化的 csv 文件复制粘贴为原始 csv?

如何使用 LibreOffice Calc 从格式化的 csv 文件复制粘贴为原始 csv?

给定一个原始 csv 文件:

$ cat foo.csv 
foo, bar
buzz, "quoted string"

自由办公室计算文本导入,带有分隔符和文本分隔符设置

如果我使用这些设置使用 Libre Office 打开此文件,我可以很好地查看它。但是,如果我再次选择整个文档并复制它,剪贴板包含:

foo  bar
buzz    quoted string

我希望剪贴板能够再次恢复原始 csv。


这个例子很牵强,但背景是我只想从更大的 csv 中导出一个小分数,而不必通过sed或使用来挑选

head -n 1 > example.csv
cat large.csv | grep SOME_CODE >> example.csv // sometimes the filter is not as easy

我喜欢使用 LibreOffice Calc,因为它提供了一个很好的过滤功能,让Data > Autofilter我可以轻松找到想要使用的行。然而,提取该选择并不那么简单。

我将使用较小的文件来设置单元测试,这就是为什么我不想更改 csv 文件的格式,即使在适当的 csv 解析器的情况下它很可能不会产生太大的差异。

因为单元测试的目的是确保它正确解析实际格式,而我不想测试 LibreOffice 对 CSV 文件的理解。

从 LibreOffice Calc 中的 CSV 文件复制时如何保留原始格式?

答案1

不要使用自动筛选,而是使用数据 -> 更多过滤器 -> 标准过滤器并将结果复制到 Sheet2。

标准过滤器

然后从 Sheet2 转到文件 -> 另存为使用类型Text CSV来生成以下文件。

foo,bar

这与原始格式略有不同。如果需要完全相同,则 LO Calc 不是正确的工具。请使用sed或类似工具。

答案2

将其粘贴到工作表中,确保已全部选中,然后转到数据 > 文本到列。这将打开与导入 .csv 文件时看到的相同的对话框。

(顺便说一下,我使用的是 Libreoffice 4.3.2.2)

相关内容