2011-06-29 49 views
11

Tôi muốn tạo một tệp csv bằng C#.Cách ghi dữ liệu trên nhiều dòng NHƯNG trong cùng một ô của csv?

Tôi có một số dữ liệu mà tôi muốn viết trên nhiều dòng NHƯNG trong cùng một ô.

Ví dụ Nếu tôi đã sau ba câu,

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

Tôi muốn viết tất cả ba câu trong tế bào duy nhất của tập tin csv nhưng tôi muốn ba trong số họ trên dòng riêng biệt.

kết quả mong muốn của tôi là:

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

Hiện nay tôi đang cố gắng để đạt được điều này bằng cách sử dụng \n nhân vật giữa hai câu nhưng khi tôi làm theo cách này, cả ba câu đi trên hàng riêng biệt.

Có ai vui lòng cho tôi biết cách giải quyết vấn đề này không?

Trả lời

18

Để quote Wikipedia:

Fields với ngắt dòng nhúng phải được kèm theo trong vòng đúp quote ký tự.

Giống như ví dụ .:

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

Bạn có thể thay đổi mã nào mà ứng dụng của bạn sử dụng để phân tích các hàng từ tệp csv, nhưng theo số definition of the csv file format, các dòng trong tệp được sử dụng để biểu thị các hàng trong dữ liệu bảng kết quả.

0

CSV viết tắt của "dấu phẩy giá trị tách" mà chỉ là một mô tả của một tập tin văn bản. Nếu bạn muốn nhập vào Excel và sau đó chỉ có các câu trong một dòng, bạn nên thử:

Environment.NewLine 

instread của một đơn giản /n

+2

Có thể '\ n', không phải'/n'? – abatishchev

-2

Tôi muốn viết tất cả ba câu trong tế bào duy nhất của tệp csv nhưng tôi muốn ba trong số đó trên dòng riêng biệt

Tệp CSV được định nghĩa là một hàng PER LINE, có ô được phân tách bằng dấu phẩy (","). Bây giờ, trình phân tích cú pháp của bạn có thể hỗ trợ sử dụng "" để ghép các câu trong cùng một ô, nhưng điều đó đã kéo dài đặc tả. Bạn cũng có thể mã hóa \ n và giải mã sau này, nhưng sau đó lại không phải là tệp vcsv. Cuối cùng, bạn cố gắng làm một cái gì đó một tập tin csv là mỗi định nghĩa không được định nghĩa để làm. \ n LÀ biểu tượng dòng mới. NATURALLY một trình soạn thảo sẽ hiển thị một dòng mới ở đây.

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 
Các vấn đề liên quan