Bảng dữ liệu CSV (.csv)

RFC Tiêu chuẩn

Comma-Separated Values (CSV) là định dạng văn bản thuần túy phổ biến rộng khắp cho dữ liệu dạng bảng; mỗi dòng biểu thị một bản ghi và các trường được phân tách bằng ký tự phân cách.

Chuyển đổi XLSX sang CSV

Trình chuyển đổi từ XLSX sang CSV miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Nén CSV trực tuyến

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp CSV bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Hoặc dán Ctrl+V
Cam kết bảo vệ quyền riêng tư, không truyền dữ liệu qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký ở đầu tệp (mẫu byte nhận diện)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp CSV bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

Không có chữ ký cố định

BIỂU DIỄN ASCII: Byte văn bản; kiểu mã hóa có thể khác nhau (thường là UTF-8)

Tiêu chuẩn hóa: RFC 4180 / IETF

Thông số kỹ thuật

Kiến trúc ContainerTệp văn bản phẳng phân tách biểu diễn các hàng và cột dữ liệu bảng
NénGzip / Deflate đạt hiệu suất nén 85%-95% đối với các bản ghi dạng bảng lặp lại
Thứ tự byteLuồng văn bản UTF-8 (có thể có BOM UTF-8 EF BB BF, được Excel sử dụng)
Không gian màuKhông áp dụng
Kênh & Cấu trúcBản ghi hàng được phân tách bằng CRLF với các cột phân tách bằng dấu phẩy
Kích thước tối đaKhông giới hạn; có thể truyền phát dung lượng gigabyte mà không cần tải toàn bộ tệp vào bộ nhớ
Độ trong suốtKhông áp dụng
Truyền phát & Tăng dầnHỗ trợ xử lý luồng từng dòng nguyên bản bởi tất cả các đường ống dữ liệu

Ma trận so sánh kỹ thuật: CSV so với các đối thủ

Thuộc tính kỹ thuậtCSV (Hiện tại)Excel (XLSX)ParquetJSON
Loại tệpBảng phẳng văn bản thuần túyBảng tính XML nén zipLưu trữ dạng cột nhị phânVăn bản phân cấp
Nhiều trang tínhKhông (chỉ một bảng phẳng duy nhất)Có (nhiều sổ làm việc và trang tính)Lưu trữ dựa trên phân vùngMảng và đối tượng lồng nhau
Kiểu dữ liệuVăn bản thô không có kiểuÔ có kiểu, công thức, định dạngKiểu cột nhị phân nghiêm ngặtKiểu nguyên thủy (chuỗi, số, boolean)
Phân tích dữ liệu lớnChậm (yêu cầu đọc từng hàng một cách tuyến tính)Không phù hợp cho dữ liệu lớnCực nhanh (cắt tỉa cột & đẩy xuống vị từ)Trung bình

Các dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã hex

Các cột dịch chuyển sang phải hoặc số lượng hàng không khớp.

Nguyên nhân gốc rễ: Một trường văn bản chứa dấu phẩy không được thoát ký tự mà không có dấu ngoặc kép bao quanh.

Khắc phục: Theo RFC 4180, các trường có chứa dấu phẩy phải được đặt trong dấu ngoặc kép: "Smith, John".

Các ký tự có dấu hiển thị thành các ký tự lạ (lỗi hiển thị như é thay vì é) trong Excel.

Nguyên nhân gốc rễ: Excel đã mở tệp CSV UTF-8 với giả định là bảng mã ký tự Windows ANSI/CP1252 cũ.

Khắc phục: Thêm 3 byte Ký hiệu thứ tự byte UTF-8 (0xEF 0xBB 0xBF) vào đầu tệp.

Phân tích bảo mật và các đường tấn công nhằm vào bộ phân tích cú pháp

Tệp CSV mở trực tiếp trong các phần mềm bảng tính như Excel và Google Sheets, khiến người dùng có nguy cơ bị tấn công chèn công thức qua CSV.

Các véc-tơ tấn công đã biết

  • Tấn công chèn công thức: ô bắt đầu bằng '=', '+', '-', hoặc '@' có thể thực thi macro trong bảng tính hoặc lệnh DDE (ví dụ: '=cmd|' /C calc'!A0').
  • Trích xuất dữ liệu qua công thức HYPERLINK() gửi dữ liệu ô nhạy cảm đến máy chủ của kẻ tấn công từ xa khi người dùng nhấp vào.

Biện pháp phòng thủ tốt nhất: Khi xuất dữ liệu người dùng sang CSV, hãy thêm dấu nháy đơn (') hoặc tab vào trước bất kỳ ô nào bắt đầu bằng '=', '+', '-', hoặc '@' để buộc hiển thị dưới dạng văn bản thuần túy trong Excel.

Nguồn gốc lịch sử và các cột mốc

2015Mô hình W3C cho Dữ liệu Bảng và Siêu dữ liệu trên Web chuẩn hóa CSV trên Web (CSVW) với các bộ mô tả siêu dữ liệu JSON-LD.
2005IETF công bố RFC 4180, thiết lập thông số kỹ thuật chính thức cho các tệp CSV.
1972Trình biên dịch IBM Fortran (H Extended) triển khai tính năng nhập/xuất phân tách bằng dấu phẩy.

Ưu điểm & Lợi ích chính

  • Độ đơn giản tối đa: đọc được trong bất kỳ trình soạn thảo văn bản nào và có thể nhập vào mọi cơ sở dữ liệu cũng như bảng tính.
  • Truyền phát từng dòng cực kỳ nhanh mà không cần tạo DOM đầy đủ trong bộ nhớ.
  • Chi phí vận hành tối thiểu: không có cú pháp thẻ dài dòng hoặc định nghĩa lược đồ.

Hạn chế & Nhược điểm kỹ thuật

  • Không có kiểu dữ liệu tiêu chuẩn: số, ngày tháng, giá trị boolean và văn bản đều được lưu trữ dưới dạng chuỗi thô.
  • Không hỗ trợ nhiều trang tính, định dạng ô, công thức hoặc siêu dữ liệu.
  • Xung đột ký tự phân cách (dấu phẩy bên trong văn bản, dấu phẩy thập phân ở các vùng châu Âu) thường gây ra lỗi phân tích cú pháp.

Thông tin kỹ thuật thú vị

  • Ở nhiều quốc gia châu Âu nơi dấu phẩy được dùng làm dấu thập phân, dấu chấm phẩy (;) được dùng thay cho dấu phẩy làm dấu phân tách CSV.
  • Microsoft Excel trước đây yêu cầu UTF-8 BOM (0xEF 0xBB 0xBF) để hiển thị chính xác các ký tự có dấu không phải ASCII.
  • Dịch vụ Y tế Quốc gia Vương quốc Anh (NHS) từng nổi tiếng vì làm mất gần 16.000 bản ghi theo dõi liên hệ COVID-19 vào năm 2020 do dữ liệu được nhập vào một định dạng bảng tính Excel cũ giới hạn số hàng ở mức 65.536.

Các câu hỏi kỹ thuật thường gặp

RFC 4180 là gì?

RFC 4180 là tiêu chuẩn IETF chính thức dành cho CSV. Tiêu chuẩn này quy định rằng các trường chứa dấu phẩy, ngắt dòng hoặc dấu ngoặc kép phải được đặt trong dấu ngoặc kép, và các dấu ngoặc kép bên trong phải được thoát bằng cách nhân đôi chúng ("").

Tại sao các tệp CSV lại mở ra với các ký tự bị lỗi trong Excel?

Các phiên bản Microsoft Excel cũ hơn mặc định sử dụng trang mã cục bộ của Windows (như Windows-1252) thay vì UTF-8 khi mở trực tiếp tệp CSV. Việc thêm BOM UTF-8 (Byte Order Mark) ở đầu tệp sẽ buộc Excel giải mã UTF-8 chính xác.

Tấn công chèn công thức qua CSV là gì?

Tấn công chèn công thức qua CSV xảy ra khi dữ liệu đầu vào không đáng tin cậy có ký tự kích hoạt công thức ở đầu trường ('=', '+', '-', '@') rồi được xuất ra tệp bảng tính. Khi tệp được mở bằng phần mềm như Excel, bảng tính sẽ tự động thực thi công thức hoặc lệnh trao đổi dữ liệu động (DDE), có thể chạy lệnh hệ thống hoặc đánh cắp dữ liệu.

Các cặp chuyển đổi CSV liên quan