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


36

我已导入一个CSV文件,该文件的第一列为ISO 8601格式的日期时间值,例如

2012-01-01T00:00:00.000Z

在2012年的第一刻。

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

YYYY-MM-DDTHH:MM:SS.000Z

如果...,我将编辑一个单元格以从其开头删除一个隐藏的单引号(这有助于保护单元格内容免受解释),因为所有新格式化的单元格现在都存储值,例如

'2012-01-01T00:00:00.000Z

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

我将对列中的所有单元格执行此操作。我该如何自动化?

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

Answers:


52

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

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

4
先生,感谢天堂为您提供的互联网。这是完全正确的。
queso 2012年

5
如果它甚至没有实际的引号(也没有代码),它将如何工作?
伊万

5
@ivan-这是一个混乱的hack,但实际上并没有完全取代引号。基本上,从正则表达式引擎的角度来看,引号根本不存在(这是单元格上的特殊标志)。这样,它所做的就是匹配单元格的全部内容(记住,字符串中没有引号)。然后,它要做的是删除单元格内容(包括清除“纯文本”标志),然后重新插入内容。然后,数据自动检测引擎将看到一个数字,并照此解释重新插入的数据。
假名称

值得注意的是,这可能会删除依赖于设置特殊单元格标记以及“纯文本”数字标记的字符的所有格式。
假名称

2
谢谢。这真是不可思议,它乞求信仰。为什么在导入后在地球上应该有这个单引号字符?
r0berts

30

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


5
REGEXP方法的替代方法。
jgomo3 2014年

至关重要的是,“文本到列”功能允许更改单元格的“类型”。有时,它卡在“文本”上,似乎没有多少重新格式化可以解决它。操作方法如下:在对话框底部“字段”下,单击列标题为“标准”的标题,然后在“列类型”下拉列表中选择所需的类型。
sxc731 '16

正则表达式在LibraOffice中不起作用,但使用“将文本更改为列”将列类型从“标准”更改为“文本”。
退出

首先,我尝试将列的样式设置为带有8位小数的数字,然后将单引号添加回前面。我放弃了,回到Excel。
退出

0

对于正则表达式替换的尝试^.\*$&坠毁的LibreOffice 5.更换的.\*&正常工作。



-2

实际上,您需要先报价一个美元符号。

出于某种未知的原因,基本上libreOffice在该字段中添加了单引号。因此,您需要用任何东西替换不超过美元符号的任何东西。因此,请使用^。* \ $的正则表达式并将其替换为任何内容。为我工作。


你在说什么美元符号?
斯科特,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.