将包含json的excel单元格转换为csv

我有一系列xlsx格式的testing用例,我需要将其转换为csv文件,但是其中一些行的json代码片段与直接文本混合在一起,并且在单元格内还有换行符(/ n)(返回) 。 这是转换为CSV的噩梦。 我试图将我的testing用例转换为csv,以便将它们导入到testing导轨应用程序(这是build议使用php脚本,但由于csv无法与json内容分隔单元格,因此脚本将无法使用)帮帮我!

脚本期望:标题,types,优先级,步骤,结果

第1行xlxs文件中的数据(office 2011 for mac)包含:title:test 1,type:文本中的一些testingtypes,即“回归”优先级:某些文本,即“高”,步骤:创build一个只有基础访问历史规则。 即:json身体:

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

结果:包含一些文本与ctrl + alt +选项btwn句子如:validation400错误的请求返回类似的错误信息msg'请求内容格式不正确:密钥找不到:名称。

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

如果您想坚持使用CSV路由,Excel 2013似乎会在\ n的CSV字段中导出换行符,并使用\ r \ n作为logging的结尾,所以您可能可以使用它来区分embedded到字段和logging的结尾取决于你如何parsingCSV文件,即:使用不支持该细微差别的库,然后直接读取xlsx可能仍然更容易。

如果你进入Excel和文件/另存为,然后selectCSV,那么甚至包含CR / LF的单元格以及embedded的引号也会根据CSV约定正确保存。 特别:

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

刚刚testing过这个。

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

正如@Erik-j所build议的,如果您将Excel中的数据集导出为csv格式,那么任何兼容csv的应用程序都应该可以读取它。 如果Excel可以读回由Excel导出的csv,那么数据集是可以的,并且您有一个不兼容的阅读器。

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

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

这种最简单的方法来阅读一个CSV文件使用PHP的 StackOverflow答案应该引导你

事实certificate,这是因为我使用Mac版本的Excel,它使用\ r作为行尾,而不是我的脚本所期望的(\ n或\ r \ n)。 我使用Sublime Text转换为\ n,我的脚本按照预期将csvparsing到我的数组中。 如果没有所有有用的build议,我都不会得出这个结论,所以谢谢你的回应!