2011-06-29 19 views
11

Quiero crear un archivo csv usando C#.Cómo escribir datos en múltiples líneas PERO dentro de la misma celda de csv?

Tengo algunos datos que quiero escribir en varias líneas PERO dentro de la misma celda.

Por ejemplo Si He siguientes tres frases,

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

Quiero escribir todas estas tres frases dentro de una sola célula del archivo csv pero quiero tres de ellos en línea separada.

Mi salida esperada es:

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

Actualmente estoy tratando de lograr esto mediante el uso \n carácter entre dos frases, pero cuando lo hago de esta manera, las tres frases van en fila separada.

¿Alguien puede decirme cómo solucionar este problema?

Respuesta

18

Para quote Wikipedia:

Los campos con saltos de línea embebidos deben ser encerrado dentro de comillas dobles caracteres.

Como ej .:

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

Es posible que pueda cambiar qué tokens utiliza su aplicación para analizar filas del archivo csv, pero de acuerdo con definition of the csv file format, las líneas en el archivo se utilizan para representar filas en los datos tabulares resultantes.

0

CSV significa "valores separados por comas", que es sólo una descripción de un archivo de texto. Si desea importar en Excel y luego sólo tienen las oraciones en una línea que debe tratar:

Environment.NewLine 

instread de una simple /n

+2

Tal vez '\ n', not'/n'? – abatishchev

-2

Quiero escribir todas estas tres frases dentro de una sola célula de archivo csv pero quiero tres de ellos en línea separada

Un archivo CSV se define como una fila por línea, con las células separadas por comas (""). Ahora, su analizador podría soportar el uso de "" para juntar oraciones en una celda, pero eso ya extiende la especificación. También podría codificar el \ n y decodificar esto más tarde, pero de nuevo no es un archivo vcsv. Al final, intenta hacer algo por lo que no está definido un archivo csv por definición. \ n ES el nuevo símbolo de línea. NATURALMENTE, un editor mostrará una nueva línea aquí.

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 
Cuestiones relacionadas