Bộ chuyển đổi XLSX sang CSV
Thả workbook Excel và xuất từng sheet dưới dạng CSV — riêng lẻ hoặc tất cả dưới dạng .zip. Không tải lên.
- Thả XLSX (hoặc XLS / XLSM / ODS) hoặc bấm "duyệt tìm".
- Chọn một sheet từ menu thả xuống.
- Bấm "Chuyển đổi & Tải xuống" cho một sheet, hoặc "Tất cả dưới dạng .zip" cho toàn bộ workbook.
- Đầu ra là CSV RFC 4180 — UTF-8, phân tách bằng dấu phẩy, thoát bằng dấu nháy đôi khi cần.
Công cụ này làm gì?
Đọc bảng tính Excel và OpenDocument qua SheetJS (fork Apache-2.0) và phát ra mỗi sheet dưới dạng CSV bằng sheet_to_csv của SheetJS. Giá trị ô được chuyển thành văn bản theo kiểu bản địa của workbook — số vẫn là số, ngày được kết xuất theo định dạng hiển thị của workbook, công thức sử dụng giá trị được tính cache. Biểu đồ, hình ảnh, và định dạng có điều kiện bị bỏ — CSV không thể biểu diễn chúng.
Cạm bẫy thường gặp
XLSX → CSV chủ yếu là cơ học, nhưng một vài mẫu tạo ra đầu ra bất ngờ.
- Định dạng ngày. Excel lưu ngày dưới dạng số sê-ri; định dạng hiển thị phụ thuộc vào định dạng số của ô. CSV sử dụng những gì Excel kết xuất — `2026-04-26`, `4/26/2026`, hoặc số sê-ri tùy cách ô được thiết lập. Để buộc ISO 8601, hãy thay đổi định dạng ô trong Excel trước khi xuất.
- Kết quả công thức vs. công thức. CSV không thể biểu diễn công thức. Đầu ra sử dụng giá trị tính được cache của mỗi ô tại lần lưu cuối. Nếu workbook đã được chỉnh sửa và không lưu lại, các giá trị cache có thể đã cũ.
- Ô được gộp. Ô được gộp phát ra giá trị ở góc trên-trái của vùng gộp; các ô được gộp khác trở thành rỗng. Đây là mặc định của SheetJS và phù hợp với những gì hầu hết người tiêu thụ CSV mong đợi.
- Số vs. văn bản. Excel lưu `00123` dưới dạng số 123 trừ khi kiểu ô được đặt rõ là Text. CSV phản ánh kiểu cơ bản. Để giữ số 0 ở đầu, định dạng ô là Text trong Excel trước khi xuất.
- XLSX được mã hóa. SheetJS Community không giải mã XLSX được bảo vệ bằng mật khẩu. Mở tệp trong Excel, xóa bảo vệ, lưu, sau đó thả lại đây.
- Workbook rất lớn. Workbook trên ~50 MB có thể mất thời gian đáng chú ý để phân tích và có thể gây áp lực lên bộ nhớ trình duyệt. Cân nhắc tách thành các tệp nhỏ hơn hoặc dùng SheetJS trên dòng lệnh cho công việc lớn.
Câu hỏi thường gặp
Tại sao chuyển đổi đầu tiên chậm?
SheetJS ~190 KB gzipped và tải khi chọn tệp lần đầu. Các chuyển đổi sau trong cùng phiên sử dụng lại module được cache — tức thì.
Có hỗ trợ tệp XLS (cũ) không?
Có — SheetJS Community phân tích .xls (BIFF8), .xlsx, .xlsm, và .ods. Các biến thể được mã hóa của bất kỳ định dạng nào trong số này không được hỗ trợ.
CSV có dùng dấu phân tách thập phân của locale của tôi không?
Không — đầu ra luôn là RFC 4180 với `.` làm dấu thập phân và `,` làm dấu phân tách trường. Để có CSV kiểu Châu Âu phân tách bằng `;`, hậu xử lý đầu ra.
Workbook của tôi có được tải lên không?
Không. Mọi thứ chạy trong trình duyệt của bạn — bảng tính của bạn được phân tích bởi SheetJS trên trang này và không bao giờ gửi đến máy chủ.
Công thức được xuất như thế nào?
CSV không thể biểu diễn công thức. Đầu ra sử dụng giá trị tính được cache của mỗi ô. Nếu bạn cần văn bản công thức, đó là một xuất khác — mở tệp trong Excel và sao chép cột công thức riêng.
Tại sao CSV không khớp chính xác với những gì tôi thấy trong Excel?
Lớp hiển thị của Excel áp dụng định dạng số, quy tắc có điều kiện, và cài đặt locale lên trên giá trị thô. CSV là văn bản thuần, nên một số phần định kiểu hình ảnh đó cố ý bị mất. Nội dung ô được giữ; hình thức ô thì không.