【问题标题】:Openoffice - CSV-export: is there a default escape-charcter?Openoffice - CSV 导出:是否有默认转义字符?
【发布时间】:2011-01-09 11:57:06
【问题描述】:

据我所知,在将文件保存为 csv 文件时,OpenOffice 会将所有字符串包含在引号字符中。

那么需要转义字符吗?

和这个问题有关:

OpenOffice 有默认转义字符吗?

【问题讨论】:

  • 这与编程无关。在 csv 中,引号是转义字符 - “我的名字是”“fred”“”
  • CSV 实际上没有转义字符。如果一个字段包含逗号,它必须被引用,如果它包含一个引号,则该字段必须像引号一样被引用——“一个单一的”“引号”是一个包含三个单词和一个单引号的字段。 CSV 标准(例如它)不能识别像 \" 这样的东西。

标签: csv escaping openoffice-calc


【解决方案1】:

我还想知道在将 OpenOffice 保存为 csv 时是否可以选择转义字符。 phpmyadmin 不接受 .ods 格式的 9,000 行 50+ 列电子表格,并且在另存为 CSV 时似乎没有办法选择转义字符。

所以我不得不保存为 csv,在 word 中打开,并使用一些查找/替换技巧将转义字符更改为 \(反斜杠)。默认是使用双引号来转义双引号,phpmyadmin 不会接受这种格式。

要正确转换文件以使用 \(反斜杠)转义双引号,您必须这样做:

  1. 选择一个占位符字符串,例如'abcdefg',确实如此 不会出现在 csv 中的任何位置。
  2. 用占位符查找/替换“””(一行三个双引号)。这是为了防止在下一步中可能出现错误的结果。
  3. 查找/替换“”(连续两个引号,表示应该转义的一个引号),使用 \"(反斜杠双引号)。如果您在没有查找/替换“””的情况下执行此操作,可以想象您可能会得到类似“\”而不是\“”的结果。安全总比后悔好。
  4. 用 \"" 查找/替换占位符字符串(反斜杠双引号双引号)。

这会起作用,除非您碰巧在原始文本字段中连续有多个双引号,这将导致在生成的 .ods 或 .xlsx csv 中连续出现多达五个双引号文件(每个转义双引号的两个双引号,如果它在字段末尾,则加上另一个双引号)。

【讨论】:

    【解决方案2】:

    引号中的转义使解析 CSV 文件的工具更轻松。

    【讨论】:

      【解决方案3】:

      在最新版本的 LibreOffice (3.4.4) 中,phpMyAdmin 未正确处理 CSV 导出。由于 LibreOffice 不提供转义字符,phpMyAdmin 的默认“CSV”导入功能“列转义为:”效果不佳。数据总是不一致。

      但是,只有在 Columns escaped by 选项中的值被删除时,使用选项 CSV using LOAD DATA 才有效。我假设 phpMyAdmin 使用默认的 MySQL LOAD DATA 命令,因此将控制权传递给 MySQL 进行数据处理。在我的场景中,它导致了准确的数据导入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-02
        • 2018-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-07
        • 2019-11-16
        • 2012-08-28
        相关资源
        最近更新 更多