我导入了一个 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 文件(导入时没有指定格式),该如何操作。
答案1
您可以使用基于正则表达式的搜索和替换删除前导单引号(实际上不是单元格中字符串的一部分):
- 搜索字符串开始和结束之间的所有字符
^.*$
- 用匹配替换
&
答案2
从“数据”菜单中,选择“文本到列”。
答案3
尝试使用正则表达式替换^.\*$
导致&
LibreOffice 5 崩溃。使用 替换.\*
则&
工作正常。
答案4
澄清并解释 sxc731 所说的话:
当您从网上下载 XL 文件并在 Libre Calc 中打开它时,数字列前面可以有一个单引号 - 因此它们被视为文本。任何公式或数字运算都无法在该列上起作用。但格式菜单/单元格仍然将其显示为数字。这是误导!要将其转换为实际数字:
- (1)单击标题选择列。这很重要。否则下一步中的菜单项将被禁用。
- (2)单击数据菜单/‘文本到列’选项。
- (3)在出现的对话框中,字段/列类型下拉框最初是空的。(这可能是一个错误)。要填充它:单击其下方显示的迷你电子表格中的标题“标准”。现在将填充列类型下拉列表。
- (4)选择“标准”作为列类型。
现在,列中的数字将被视为数字,而不是文本。