【问题标题】:convert excel cell containing json into csv将包含 json 的 excel 单元格转换为 csv
【发布时间】:2014-06-06 04:12:57
【问题描述】:

我有一系列 xlsx 格式的测试用例,我需要将其转换为 csv 文件,但是其中一些行将 json 的 sn-ps 与纯文本混合在一起,并且它们也有换行符 (/n) (返回)在单元格内。这使得转换为 csv 成为一场噩梦。我正在尝试将我的测试用例转换为 csv 以便将它们导入到 Test Rail 应用程序中(这建议使用 php 脚本,但由于 csv 无法使用 json 内容分隔单元格等,因此该脚本将不起作用)请帮忙!

脚本需要:标题、类型、优先级、步骤、结果

xlxs 文件 (office 2011 for mac) 中的第 1 行数据包含: 标题:测试1, 类型:文本中的一些测试类型,即“回归” 优先级:一些文本,即“高”, 步 : 创建仅具有基本访问历史记录规则的已启用配置文件。 即:json正文:

{
  "name": " Basic Rule Only",
  "description": ""a basic rule only"
  } 
}

result: 包含一些带有 ctrl+alt+option btwn 语句的文本,例如: 验证 400 Bad Request 返回类似错误消息“请求内容格式错误: 未找到密钥:名称。'

【问题讨论】:

  • 你找到解决办法了吗?

标签: php json excel csv


【解决方案1】:

原来是因为我使用的是 Mac 版本的 Excel,它使用 \r 作为行尾,而不是我的脚本所期望的(\n 或 \r\n)。我使用 Sublime Text 转换为 \n 并且我的脚本按预期将 csv 解析为我的数组。如果没有您的所有有用建议,我不会得出这个结论,所以感谢您的回复!

【讨论】:

    【解决方案2】:

    正如@Erik-j 建议的那样,如果您将数据集从 Excel 导出为 csv 格式,那么任何符合 csv 的应用程序都应该能够读取它。如果 Excel 可以回读 Excel 导出的 csv,则数据集没问题,您的阅读器不兼容。

    csv 的问题在于格式非常模糊(例如分隔符不同),唯一有效的参考规范是 Excel 本身。 (http://en.wikipedia.org/wiki/Comma-separated_values#Toward_standardization)。

    如果您不能使用另一种更严格定义的交换数据格式(例如基于 xml),请使用 Test Rail 建议的 php 脚本(您可能指的是这个 - http://docs.gurock.com/testrail-admin/migration-csv)并修复它。

    这个Simplest way to read an csv file using php StackOverflow 答案应该可以指导您

    【讨论】:

      【解决方案3】:

      如果您进入 Excel 和文件/另存为,然后选择 CSV,即使单元格中包含 CR/LF 以及嵌入的引号,也会根据 CSV 约定正确保存。具体来说:

      • 任何带有逗号或 CR/LF 的单元格都会被引用
      • 引用单元格中的任何引用都将保存为两个引号 ("")

      刚刚测试过。

      任何可以根据 CSV 规范读取文件的应用程序都应该能够读取正确引用和转义的 CSV。

      【讨论】:

        【解决方案4】:

        最好的办法是编写一个脚本来直接从 xlxs 文件中获取数据。 xlsx 文件只是一个标准的 zip 文件,其中包含一个 XML 文件,其中包含数据和一些包含样式的其他文件。您选择的语言可能已经有一个可以使用的 XLSX 解析器。

        如果您想坚持使用 CSV 路线,Excel 2013 似乎会在 \n 处的 CSV 字段中导出换行符,并使用 \r\n 作为记录结束,因此您可以使用它来区分新行嵌入在字段和记录末尾,具体取决于您解析 CSV 文件的方式,即:使用不支持这种细微差别的库,然后直接读取 xlsx 可能仍然更容易。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-07
          • 1970-01-01
          • 2020-08-25
          • 2020-08-26
          • 2021-05-15
          • 2015-03-26
          相关资源
          最近更新 更多