Thông số CSV là một công cụ mà tôi thấy được triển khai theo nhiều cách khác nhau ... về cơ bản có vẻ như nó chỉ có một nửa thông số, điều này thật khó chịu vì tính phổ biến của nó.
Để bao gồm một dòng mới trong một ô trong CSV, ô có thể cần được bao bọc hoặc dòng mới có thể cần được thoát. Bạn sẽ nhận thấy từ tài liệu được liên kết có ba cách để thực hiện việc này - và các chương trình khác nhau xử lý nó theo cách khác:
- Excel bao bọc toàn bộ ô trong dấu ngoặc kép:một ô có thể có (không thoát) các ký tự dòng mới bên trong nó và được coi là một ô duy nhất, miễn là nó được đặt trong dấu ngoặc kép (lưu ý rằng bạn cũng sẽ cần sử dụng kiểu excel dấu ngoặc kép thoát trong nội dung ô)
- Các chương trình khác chèn một dấu gạch chéo ngược trước ký tự, do đó một dòng kết thúc bằng
\
không được coi là cuối dòng mà là một ký tự dòng mới trong ô. Một ô có thể có các ký tự dòng mới chưa thoát, miễn là chúng đứng trước ký tự gạch chéo ngược. - Những người khác vẫn thay thế một dòng mới bằng thoát ký tự kiểu C, chuỗi ký tự thực tế
\n
hoặc\r\n
. Trong trường hợp này, ô đã thoát hoàn toàn các ký tự dòng mới.
Vấn đề phức tạp bởi nhu cầu có thể thoát khỏi các ký tự điều khiển (cũng như nội dung khác (ví dụ:"
trong # 1 và \
trong # 2 + 3) và các kiểu thoát khác nhau (ví dụ:một dấu ngoặc kép được nhúng có thể được thoát dưới dạng:dấu ngoặc kép kép ""
hoặc dấu ngoặc kép-dấu ngoặc kép \"
)
Lời khuyên của tôi :tạo tài liệu open-office với nhiều dòng và ký tự thoát khóa và xem cách open-office tạo CSV
tập tin. Từ đó, bạn có thể quyết định phương pháp nào ở trên sẽ sử dụng cho dòng mới trong ô và phương pháp thoát nào.
ví dụ về style-1 (excel):
#num,str,num
1,"Hello
World",1990
2,"Yes",1991
ví dụ về style-2:
#num,str,num
1,Hello \
Word,1990
2,Yes,1991
ví dụ về style-3:
#num,str,num
1,Hello \nWorld,1990
2,Yes,1991