如何在多行上写入数据但是在csv的同一单元格内?

时间:2011-06-29 05:43:22

标签: c# csv

我想用C#创建一个csv文件。

我有一些数据要在同一个单元格中的多行上写入。

例如 如果我有三个句子,

Sample sentence 1. This is second sample sentence. and this is third sentence.

我想在csv文件的单个单元格中编写所有这三个句子,但我希望其中三个在单独的行中。

我的预期输出是:

Sample sentence 1.
This is second sample sentence.
and this is third sentence.

目前我试图通过在两个句子之间使用\n字符来实现这一点,但是当我这样做时,所有三个句子都在不同的行上。

有谁能告诉我如何解决这个问题?

7 个答案:

答案 0 :(得分:25)

quote Wikipedia

  

包含嵌入换行符的字段必须   包含在双引号内   字符。

例如:

1997,Ford,E350,"Go get one now
they are going fast"

答案 1 :(得分:0)

您可以更改应用程序用于解析csv文件中的行的标记,但根据definition of the csv file format,文件中的行用于表示生成的表格数据中的行。

答案 2 :(得分:0)

string input = "...";

var r = input.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries) // split by dot (have you any better approaches?)
             .Select(s => String.Format("\"{0}.\"", s.Trim())); // escape each with quotes

input = String.Join(Environment.NewLine, r); // break by line break

答案 3 :(得分:0)

始终在“ \”之间包裹您的描述,例如:CsvRow.Add(“ \”“ + ID +”:“ +描述+” \“”);

答案 4 :(得分:-1)

CSV代表“逗号分隔值”,它只是文本文件的描述。如果你想导入Excel然后只有一行中的句子,你应该尝试:

Environment.NewLine

简单/n

的实例

答案 5 :(得分:-1)

string filePath = @"d:\pandey.csv";
        StringBuilder outString=new StringBuilder();
        outString.Append("\""); //double quote 
        outString.Append("Line 1, Hi I am line 1 of same cell\n");
        outString.Append("Line 2 Hi I am line 2 of same cell\n");
        outString.Append("Line 3 Hi I am line 3 of same cell\n");
        outString.Append("Line 4 Hi I am line 4 of same cell");
        outString.Append("\""); //double quote             
        File.WriteAllText(filePath, outString.ToString());

答案 6 :(得分:-2)

  

我想在csv文件的单个单元格中写出所有这三个句子,但我想要其中三个   在单独的一行

CSV文件定义为PER LINE一行,单元格用逗号(“,”)分隔。现在,您的解析器可以支持使用“”将句子放在一个单元格中,但这已经扩展了规范。你也可以对\ n进行编码并稍后对其进行解码,但是这又不是vcsv文件。最后,您尝试根据未定义的csv文件执行某些操作。 \ n是新的线符号。自然地,编辑将在这里显示一个新的行。