如何从 LibreOffice Calc 中的所有选定单元格中删除保护单引号的纯文本?

Iva*_*van 35 cells libreoffice-calc

我已经导入了一个 CSV 文件,其中第一列是ISO 8601格式的日期时间值,例如

2012-01-01T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

2012 年的第一个时刻。

然后,愿意让 LibreOffice 识别格式(因为我期待绘制图表),我选择了列,选择Format Cells...并输入自定义时间格式作为

YYYY-MM-DDTHH:MM:SS.000Z
Run Code Online (Sandbox Code Playgroud)

如果...我编辑一个单元格以从其开头删除隐藏的单引号(用于保护单元格内容不被解释),这似乎有效,因为所有新格式化的单元格现在存储的值如下

'2012-01-01T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

(请注意单引号 - 它仅在您编辑特定单元格时可见)。

我要为列中的所有单元格这样做。我怎样才能自动化这个?

更新:我已经找到了针对我的特定情况的解决方案:它有助于在 CSV 导入对话框中将列格式设置为“时间”。但我仍然很好奇,如果我没有要导入的原始 .csv 数据文件,而只有 .ods 文件,其中的数据已经导入,而没有在导入时指定的格式,我仍然很好奇如何做到这一点。

toh*_*ohu 55

您可以使用基于正则表达式的搜索和替换来删除前导单引号(它实际上不是单元格中字符串的一部分):

  • 搜索字符串开头和结尾之间的所有字符 ^.*$
  • 替换为匹配 &

  • 如果它甚至没有实际的引号(或其代码),它到底是如何工作的? (5认同)
  • @ivan - 这是一个凌乱的黑客,但它实际上根本没有取代引用。基本上,从正则表达式引擎的角度来看,引用根本不存在(它是单元格上的一个特殊标志)。因此,它所做的是匹配单元格的全部内容(记住,字符串中没有引号)。然后,它所做的是删除单元格内容(*包括清除“纯文本”标志*),然后重新插入内容。数据自动检测引擎随后会看到一个数字,并以此解释重新插入的数据。 (5认同)
  • 感谢上帝的互联网和你,先生。这是完全正确的。 (4认同)
  • 谢谢你。这太奇怪了,令人难以置信。为什么导入后应该有这个单引号字符? (2认同)

小智 31

从“数据”菜单中,选择“文本到列”。

  • REGEXP 方法的一种更简洁的替代方法。 (5认同)