Bạn đã xuất một báo cáo bán hàng từ công cụ kế toán và nhận được hai tùy chọn: tải xuống dưới dạng CSV hoặc XLSX. Bạn chọn một, mở ra, và có gì đó trông sai — công thức biến mất, dấu trở thành ký tự khó đọc, hoặc ngày tháng dao động giữa định dạng châu Âu và châu Mỹ. Đây là thực tế hàng ngày của các định dạng bảng tính, và lựa chọn giữa XLSX và CSV hiếm khi rõ ràng như nó có vẻ.
Cả hai định dạng đều lưu trữ dữ liệu dạng bảng, nhưng chúng được thiết kế cho các công việc khác nhau. Hiểu được những gì mỗi định dạng bảo tồn — và những gì nó âm thầm bỏ — tiết kiệm hàng giờ gỡ lỗi và rất nhiều thất vọng.
CSV thực sự là gì
CSV là viết tắt của Comma-Separated Values (giá trị phân cách bằng dấu phẩy). Đây là định dạng dạng bảng lâu đời và đơn giản nhất vẫn được sử dụng rộng rãi, có từ thời trao đổi dữ liệu mainframe vào những năm 1970.
Tệp CSV là tệp văn bản thuần. Mỗi dòng là một hàng, và trong một hàng các giá trị được phân tách bằng dấu phân cách — thường là dấu phẩy, đôi khi là dấu chấm phẩy, tab hoặc thanh đứng. Không định dạng, không công thức, không kiểu dáng và không có khái niệm nhiều trang tính. Chỉ là các hàng và cột văn bản.
Sự đơn giản này là siêu năng lực của CSV. Bất kỳ công cụ nào xử lý dữ liệu dạng bảng — từ chương trình COBOL 50 năm tuổi đến script Python hiện đại — đều có thể đọc CSV. Không có trình phân tích độc quyền, không có khả năng tương thích phiên bản, không có giấy phép. Mở nó trong trình soạn thảo văn bản và bạn có thể đọc.
XLSX thực sự là gì
XLSX là định dạng Office Open XML Spreadsheet, được Microsoft giới thiệu vào năm 2007 để thay thế định dạng nhị phân .xls cũ hơn. Mặc dù nguồn gốc Microsoft, XLSX là một tiêu chuẩn ISO mở (ISO/IEC 29500), và hầu hết các ứng dụng bảng tính hiện đại đều hỗ trợ nó nguyên bản. Tệp XLSX không phải là một tệp duy nhất — nó là một kho lưu trữ ZIP chứa hàng chục tài liệu XML. Bên trong, bạn tìm thấy:
- Dữ liệu ô và công thức
- Định dạng (phông chữ, màu sắc, viền, định dạng số)
- Nhiều trang tính, mỗi trang có lưới riêng
- Biểu đồ, bảng pivot, phạm vi đặt tên, định dạng có điều kiện
- Hình ảnh nhúng và thậm chí cả macro
Bạn có thể đổi tên tệp .xlsx thành .zip, giải nén nó và tự kiểm tra XML. Điều này khiến XLSX vừa phong phú vừa có thể kiểm tra được.
So sánh trung thực
| Khả năng | CSV | XLSX |
|---|---|---|
| Lưu trữ giá trị đơn giản | ✅ | ✅ |
| Bảo tồn công thức | ❌ | ✅ |
| Bảo tồn định dạng | ❌ | ✅ |
| Nhiều trang tính | ❌ | ✅ |
| Biểu đồ và bảng pivot | ❌ | ✅ |
| Định dạng số (tiền tệ, ngày) | ❌ (chỉ văn bản) | ✅ |
| Tương thích phổ quát | ✅ | ✅ (ứng dụng hiện đại) |
| Có thể đọc trong trình soạn thảo văn bản | ✅ | ❌ (là ZIP) |
| Kích thước cho dữ liệu đơn giản | Nhỏ nhất | Lớn hơn 5-10× |
| Rủi ro về vấn đề locale | Cao | Thấp |
| Có thể stream cho tệp lớn | ✅ | ⚠️ (phải giải nén trước) |
Khi nào CSV là câu trả lời đúng
Sử dụng CSV khi bạn cần bất kỳ thuộc tính nào trong số này:
- Tương thích tối đa. Nhập vào cơ sở dữ liệu, cấp dữ liệu cho script, gửi đến đối tác có công cụ không xác định — CSV sẽ hoạt động ở mọi nơi.
- Tập dữ liệu khổng lồ. CSV một triệu dòng stream gọn gàng; XLSX một triệu dòng có thể đụng giới hạn bộ nhớ và mức trần cứng của Excel là 1.048.576 dòng mỗi trang tính.
- Kiểm soát phiên bản. CSV diff sạch trong Git. XLSX hiện ra như một blob nhị phân.
- Trao đổi dữ liệu thuần túy. Khi bạn chỉ cần các giá trị và hệ thống nhận sẽ áp dụng định dạng của riêng nó.
Khi nào XLSX là câu trả lời đúng
Chuyển sang XLSX khi bất kỳ điều nào sau đây quan trọng:
- Công thức phải tồn tại. Một ngân sách với
=SUM(B2:B30)trở thành một con số tĩnh trong CSV. - Nhiều trang tính. Một bộ theo dõi hàng tháng với một trang tính cho mỗi tháng sụp đổ thành một trang tính trong CSV.
- Định dạng mang ý nghĩa. Tổng in đậm, danh mục mã màu, ký hiệu tiền tệ, định dạng phần trăm — tất cả đều mất trong CSV.
- Ngày và số an toàn về kiểu. XLSX lưu
2026-05-02dưới dạng kiểu ngày. CSV lưu nó dưới dạng văn bản, và công cụ tiếp theo quyết định cách diễn giải (thường là sai). - Người nhận là con người. Con người đọc tệp XLSX. Chương trình đọc CSV.
Những bẫy bắt tất cả mọi người
Một vài vấn đề cụ thể cắn người dùng nhiều lần:
Bẫy dấu phẩy theo locale Trong tiếng Pháp, tiếng Đức và nhiều locale khác, dấu phân cách thập phân là dấu phẩy, không phải dấu chấm. Vì vậy 1,5 có nghĩa là 1.5. Nhưng CSV sử dụng dấu phẩy làm dấu phân cách trường. Excel trong các locale đó lưu CSV với dấu chấm phẩy thay thế — sau đó vỡ khi nhập vào công cụ mong đợi dấu phẩy. Kết quả: số ở các cột sai hoặc toàn bộ hàng được hợp nhất.
Bẫy định dạng ngày Một CSV với 03/04/2026 là mơ hồ. Đó là 3 tháng 4 hay 4 tháng 3? Excel diễn giải tự động dựa trên locale, đôi khi viết lại ngày một cách thầm lặng. XLSX lưu ngày dưới dạng số (ngày kể từ năm 1900) với siêu dữ liệu kiểu rõ ràng, loại bỏ sự mơ hồ.
Bẫy số 0 đầu Số điện thoại, mã bưu chính hoặc SKU sản phẩm bắt đầu bằng 0 tồn tại trong XLSX dưới dạng văn bản. Trong CSV, khi mở lại trong Excel, nó được phân tích thành số và số 0 đầu biến mất. Mãi mãi.
Bẫy mã hóa Một CSV xuất dưới dạng ANSI trên Windows trông ổn cho đến khi một tên tiếng Pháp với é hoặc tên tệp tiếng Nhật xuất hiện. Luôn xuất CSV dưới dạng UTF-8 với BOM nếu Excel sẽ mở lại, hoặc UTF-8 thuần nếu một script tiêu thụ nó.
Một quy tắc thực tế
Sử dụng bài kiểm tra đơn giản này:
- Sẽ được mở bởi con người? → XLSX
- Sẽ được tiêu thụ bởi chương trình hoặc pipeline? → CSV
- Có công thức, nhiều trang tính hoặc định dạng? → XLSX
- Đến cơ sở dữ liệu, API hoặc đối tác có công cụ không xác định? → CSV
- Tệp lớn hơn 100 MB hoặc 500.000 dòng? → CSV
Khi nghi ngờ, giữ bản chính ở XLSX và xuất sang CSV khi cần. Đi theo hướng ngược lại — xây dựng định dạng phong phú trong CSV và cố gắng nâng cấp lên XLSX — mất các ưu điểm của mỗi định dạng.
Tiến xa hơn
Nếu bạn làm việc với bảng tính hàng ngày, hai hướng dẫn ngắn bao gồm các quy trình làm việc phổ biến trong trình duyệt của bạn:
- Cách chỉnh sửa bảng tính XLSX trực tuyến mà không cần Excel — Mở, chỉnh sửa, chạy công thức và xuất, không cần Excel.
- Cách chuyển đổi giữa JSON, YAML và CSV — Đi và về giữa các định dạng phổ biến mà không mất cấu trúc.
Cả hai đều chạy hoàn toàn trong trình duyệt của bạn và không bao giờ tải lên các tệp của bạn lên bất kỳ máy chủ nào.
