用swift在单个单元格中创build一个带有换行符的.csv文件

我有一个问题,我现在已经呆了两天了。 我已经阅读了大量的文件,但也许有人可以帮助我。 所以简而言之,对于那些不想进一步阅读的人来说,我需要导入.csv文件来优化大量数据,其中包含一些包含两行或更多行的单元格。

所以这里是我的第一个.csv文件,例如使用utf16小端编码:

Id;Order Date;First Name (Billing);Optional message; 106119;"2016-11-01 \r\n 22:34:00";John;; 94540;"2016-11-01 \n 22:37:33";John;; 94540;"2016-11-01 \r 22:37:33";John;; 94540;"2016-11-01 \n\r 22:37:33";John;; 94540;"2016-11-01 22:37:33";Damien;; 

从我读的最后一行或事件中\ n行应该在单行中打印两行,而在OS X上的EXCEL 15识别\ n并进入下一行。

这几乎是相同的文件也不工作:

 "Id","Order Date","First Name (Billing)","Optional message", "106119","2016-11-01 \r\n 22:34:00","John","", "94540","2016-11-01 \n 22:37:33","John","", "94540,"2016-11-01 \r 22:37:33","John","", "94540,"2016-11-01 \n\r 22:37:33","John","", "94540,"2016-11-01 22:37:33","Damien","", 

我在每行的结尾添加\ r \ n。

有人可以告诉我我做错了什么,我已经没有想法了。 在Mac上再次使用Office 15。 问我一个额外的问题。 我已经试过了swift生成的.csv文件以及wordpress的woocommerce导出的文件,我手动编辑包括单元格的换行符。 既没有工作。 我不知道该怎么办。 如果你这样做,请通过编辑我的例子给我正确的方式。 先谢谢你。

没有一个mac,但在Windows上尝试过。 Excel可以在使用Excel时使用ALT + ENTER在单元格中添加“新行”。 在hex编辑器中,我看到转换为0x0A字符,即Line Feed /或LF。

所以当你生成一个CSV文件时,你需要放一个LF 0x0A字符,而不是\ r或\ n,因为没有任何东西可以解释这些转义序列。

为了testing这个,我写了一个简单的C#代码片段

 char lf = (char)0x0A; System.IO.StreamWriter sw = System.IO.File.CreateText(@"x.csv"); sw.WriteLine("Id,Name,DateTime,Message"); sw.WriteLine("\"343\",\"34343\",\"12/12/2014{0}10:30\",\"dfsdfsfsdfsdf\"", lf); sw.WriteLine("\"343\",\"34343\",\"12/12/2014{0}10:30\",\"dfsdfsfsdfsdf\"", lf); sw.WriteLine("\"343\",\"34343\",\"12/12/2014{0}10:30\",\"dfsdfsfsdfsdf\"", lf); sw.WriteLine("\"343\",\"34343\",\"12/12/2014{0}10:30\",\"dfsdfsfsdfsdf\"", lf); sw.Close(); 

然后我在Excel中打开生成的CSV文件,我可以得到“多行”单元格出现。 希望这给你一些关于如何获得类似的东西在Mac上工作的指导

在这里输入图像说明