Kiểm tra file CSV: bắt lỗi lệch cột, dấu ngoặc kép và dấu phân cách trước khi nhập dữ liệu
Công cụ kiểm tra cấu trúc file CSV ngay trên trình duyệt: đếm số dòng, số cột, chỉ ra chính xác dòng nào có số cột không khớp với dòng tiêu đề và cảnh báo những ô có dấu ngoặc kép đặt sai. Bạn dán dữ liệu hoặc chọn tệp từ máy, đổi dấu phân cách theo đúng file của mình, rồi xem bảng xem trước để đối chiếu.
Tính năng nổi bật
- Dán trực tiếp nội dung CSV hoặc chọn tệp có đuôi csv và txt từ máy, tệp được đọc bằng trình duyệt chứ không tải lên máy chủ
- Đổi dấu phân cách sang dấu chấm phẩy, dấu tab hay ký tự sổ đứng thay vì cố định dấu phẩy
- Đếm tổng số dòng và số cột lấy theo dòng đầu tiên để bạn đối chiếu với số bản ghi mong đợi
- Chỉ ra đúng số thứ tự dòng bị lệch cột kèm số cột thực tế so với số cột chuẩn
- Cảnh báo những ô có dấu ngoặc kép nhưng không bao trọn nội dung ô, dấu hiệu của lỗi thoát ký tự
- Bộ tách dòng hiểu dấu ngoặc kép nên dấu phân cách nằm bên trong ô được giữ nguyên, không bị cắt nhầm
- Bảng xem trước lấy dòng đầu làm tiêu đề và hiển thị năm dòng dữ liệu để bạn kiểm tra mắt thường
- Tự cắt khoảng trắng thừa ở hai đầu mỗi ô khi phân tích nên không bị báo lỗi giả vì lỗi canh lề
Vì sao nên soi file CSV trước khi nhập vào hệ thống
Phần lớn sự cố nhập dữ liệu không đến từ hệ thống nhận mà đến từ một file CSV nhìn qua rất bình thường. Nó mở bằng trình soạn thảo vẫn thấy đủ cột, mở bằng bảng tính vẫn thấy đủ dòng, nhưng bên trong có một dòng dư một dấu phẩy vì tên khách hàng ghi kiểu Công ty A, chi nhánh 2 mà không bọc ngoặc kép. Hệ thống nhập liệu gặp dòng đó thường phản ứng theo một trong ba cách đều tệ: dừng giữa chừng khiến bạn không biết đã ghi tới đâu, bỏ qua dòng lỗi mà không báo, hoặc tệ nhất là đẩy giá trị lệch sang cột bên cạnh và ghi vào cơ sở dữ liệu một cách im lặng. Trường hợp thứ ba mới thật sự nguy hiểm vì lỗi chỉ lộ ra vài tuần sau khi ai đó phát hiện số điện thoại nằm trong ô địa chỉ. Chạy file qua bước kiểm tra mất chưa tới một phút và cho bạn đúng số dòng cần sửa, thay vì đi dò tay trong tệp vài nghìn dòng.
Lợi ích khi sử dụng
- Biết chính xác dòng nào hỏng thay vì nhận một thông báo lỗi chung chung từ hệ thống nhập liệu
- Phát hiện sớm việc chọn nhầm dấu phân cách, biểu hiện là toàn bộ file chỉ có một cột duy nhất
- Đối chiếu nhanh số dòng đọc được với số bản ghi mà bên gửi thông báo, lệch là biết file bị cắt cụt
- Kiểm tra dòng tiêu đề có đúng tên trường mà hệ thống đích yêu cầu trước khi tốn công nhập thử
- Dữ liệu khách hàng, đơn hàng hay bảng lương không rời khỏi máy vì mọi phân tích chạy trong trình duyệt
Cách kiểm tra một file CSV
- 1Xác định dấu phân cách thật của file bằng cách mở nó bằng trình soạn thảo văn bản, đừng mở bằng bảng tính vì bảng tính đã tự tách cột nên bạn không nhìn thấy ký tự gốc.
- 2Nhập ký tự phân cách đó vào ô dấu phân cách, mặc định là dấu phẩy, đổi thành dấu chấm phẩy nếu file xuất từ bảng tính cài theo vùng châu Âu.
- 3Chọn tệp từ máy hoặc dán nội dung vào khung nhập, nếu file quá lớn thì dán một phần đại diện gồm dòng tiêu đề và vài trăm dòng dữ liệu.
- 4Bấm kiểm tra và đọc danh sách vấn đề: mục màu đỏ là lỗi lệch số cột phải sửa, mục màu vàng là cảnh báo dấu ngoặc kép cần xem lại.
- 5Mở file gốc, nhảy tới đúng số dòng được báo để sửa, sau đó dán lại và kiểm tra thêm một lượt cho tới khi không còn lỗi đỏ.
CSV không có chuẩn tuyệt đối, nhưng có một quy ước chung
Nhiều người tưởng CSV là định dạng đơn giản đến mức không thể sai, thực tế nó chỉ được mô tả trong tài liệu RFC 4180 dưới dạng một quy ước chứ không phải một chuẩn bắt buộc. Quy ước đó nói ba điều quan trọng. Thứ nhất, mỗi dòng là một bản ghi và mọi bản ghi phải có cùng số trường như dòng đầu. Thứ hai, trường nào chứa dấu phân cách, dấu ngoặc kép hoặc ký tự xuống dòng thì bắt buộc phải bọc trong cặp dấu ngoặc kép. Thứ ba, muốn có một dấu ngoặc kép nằm trong nội dung thì phải viết nó hai lần liên tiếp, nghĩa là chuỗi anh nói xin chào ghi thành ba ký tự ngoặc ở chỗ mở và chỗ đóng. Vì đây chỉ là quy ước nên mỗi phần mềm cài mỗi kiểu: có nơi dùng dấu gạch chéo ngược để thoát ký tự, có nơi cho phép trường chứa xuống dòng, có nơi bỏ hẳn. Đó là lý do một file chạy tốt ở hệ thống này lại lỗi ở hệ thống kia, và cũng là lý do nên kiểm tra lại mỗi khi đổi nguồn xuất dữ liệu.
Lỗi lệch số cột đến từ đâu
Khi công cụ báo dòng 148 có 9 cột trong khi chuẩn là 8, gần như luôn rơi vào một trong bốn nguyên nhân. Thứ nhất là trong ô có dấu phân cách mà không bọc ngoặc kép, điển hình là địa chỉ dạng số 12, đường Lê Lợi hoặc tên công ty có dấu phẩy. Thứ hai là số tiền viết theo kiểu Việt Nam có dấu phẩy ngăn nhóm hàng nghìn, ví dụ 1,250,000 sẽ bị tách thành ba cột. Thứ ba là dữ liệu bị dán từ nơi khác vào kèm ký tự xuống dòng nằm giữa một ô ghi chú, khiến một bản ghi bị xé thành hai dòng và cả hai đều thiếu cột. Thứ tư là dòng cuối file bị cắt cụt do quá trình truyền tệp không hoàn tất. Cách sửa tương ứng cũng khác nhau: ba trường hợp đầu xử lý bằng cách bọc ngoặc kép cho ô có vấn đề hoặc đổi sang dấu phân cách khác như dấu chấm phẩy, còn trường hợp cuối thì phải lấy lại file. Nếu số cột thừa đúng bằng số dấu phẩy trong một ô, bạn đã tìm ra thủ phạm.
Chọn dấu phân cách: vì sao file xuất từ máy tính ở Việt Nam hay dùng dấu chấm phẩy
Bảng tính không lưu CSV theo một dấu phân cách cố định, nó lấy ký tự phân tách danh sách theo thiết lập vùng của hệ điều hành. Ở nhiều máy cài định dạng vùng dùng dấu phẩy làm dấu thập phân, ký tự phân tách danh sách sẽ tự động là dấu chấm phẩy, và file lưu ra sẽ ngăn cột bằng dấu chấm phẩy dù phần mở rộng vẫn là csv. Người nhận nếu mặc định coi đó là file phân tách bằng dấu phẩy sẽ thấy toàn bộ dữ liệu dồn vào một cột duy nhất. Đây là lý do ô dấu phân cách trong công cụ cho bạn tự nhập ký tự. Ngoài dấu phẩy và dấu chấm phẩy, hai lựa chọn hay gặp là ký tự tab, dùng khi dữ liệu có nhiều dấu phẩy và dấu chấm phẩy, và ký tự sổ đứng, thường thấy trong file xuất từ hệ thống kế toán hoặc ngân hàng. Muốn nhập ký tự tab vào ô này, hãy sao chép một ký tự tab từ trình soạn thảo rồi dán vào, vì bấm phím tab trực tiếp sẽ chuyển con trỏ sang ô khác.
Tiếng Việt có dấu và chuyện mã hóa khi mở lại bằng bảng tính
Công cụ này đọc tệp theo mã hóa mặc định của trình duyệt là UTF-8, nên nếu file gốc lưu theo bảng mã cũ, phần chữ tiếng Việt sẽ hiện thành ký tự lạ ngay trong khung xem trước. Đó là dấu hiệu cần chuyển mã file trước khi làm bất cứ việc gì khác, vì sửa cấu trúc trên một file sai mã chỉ tốn công. Chiều ngược lại cũng gây phiền: file lưu đúng chuẩn UTF-8 nhưng khi mở bằng bảng tính lại hiện chữ vỡ, nguyên nhân là bảng tính không tự đoán ra mã hóa khi mở trực tiếp. Hai cách xử lý phổ biến là lưu file kèm dấu hiệu nhận dạng đầu tệp mà nhiều phần mềm gọi là BOM, hoặc dùng chức năng nhập dữ liệu từ văn bản rồi chọn tay mã hóa UTF-8 thay vì mở bằng cách nhấp đúp. Lưu ý thêm là dấu hiệu nhận dạng đầu tệp có thể bám vào tên cột đầu tiên khi hệ thống khác đọc file, khiến tên cột trông giống mà lại không khớp, một lỗi rất khó thấy bằng mắt.
Công cụ bắt được gì và không bắt được gì
Cần nói rõ phạm vi để bạn không tin nhầm vào một kết quả hợp lệ. Công cụ kiểm tra cấu trúc: số cột mỗi dòng và cách dùng dấu ngoặc kép. Nó không kiểm tra nội dung, nghĩa là một ô ngày tháng ghi sai định dạng, một ô số điện thoại thiếu số 0 đầu, một mã sản phẩm trùng lặp hay một ô để trống ở cột bắt buộc đều lọt qua. Nó cũng không phát hiện tên cột trùng nhau trong dòng tiêu đề, không kiểm tra mã hóa ký tự, và không so sánh cấu trúc file với yêu cầu của hệ thống đích. Một giới hạn kỹ thuật quan trọng: công cụ cắt dòng theo ký tự xuống dòng trước rồi mới phân tích từng dòng, nên nếu file của bạn có ô ghi chú chứa xuống dòng bọc trong ngoặc kép đúng chuẩn thì ô đó vẫn bị tách thành nhiều dòng và bị báo lệch cột dù file thật ra hợp lệ. Cuối cùng, toàn bộ nội dung nằm trong bộ nhớ của trang nên file rất lớn sẽ làm trình duyệt chậm; với những tệp cỡ đó nên cắt lấy mẫu để kiểm tra.
Câu hỏi thường gặp (FAQ)
Vì sao toàn bộ file của tôi bị dồn vào một cột duy nhất?
Vì dấu phân cách bạn chọn không khớp với ký tự thật trong file. Hãy mở file bằng trình soạn thảo văn bản để nhìn thấy ký tự gốc, rất có thể là dấu chấm phẩy chứ không phải dấu phẩy. Nhập đúng ký tự đó vào ô dấu phân cách rồi kiểm tra lại là số cột sẽ hiện đúng.
Dòng của tôi báo thừa cột nhưng nhìn vẫn thấy đúng, sao vậy?
Hầu như luôn do một ô chứa dấu phân cách mà không được bọc trong dấu ngoặc kép. Địa chỉ có dấu phẩy và số tiền viết ngăn nhóm hàng nghìn bằng dấu phẩy là hai thủ phạm quen thuộc. Số cột thừa thường bằng đúng số dấu phân cách lọt vào trong ô đó, dựa vào đấy bạn dò ra ô có vấn đề rất nhanh.
Cảnh báo dấu ngoặc kép không đúng chuẩn nghĩa là gì?
Nghĩa là trong ô có ký tự ngoặc kép nhưng ngoặc kép không bao trọn cả ô từ đầu đến cuối. Thường gặp khi nội dung chứa dấu nháy kép mà không được nhân đôi để thoát ký tự, hoặc khi thiếu một dấu đóng. Đây là cảnh báo chứ không phải lỗi chặn, nhưng nên sửa vì mỗi hệ thống nhập liệu diễn giải một kiểu.
File CSV của tôi có ô ghi chú nhiều dòng thì kiểm tra thế nào?
Công cụ cắt dòng theo ký tự xuống dòng trước khi phân tích, nên ô nhiều dòng dù bọc ngoặc kép đúng chuẩn vẫn bị tách và báo lệch cột. Đây là giới hạn đã biết. Với loại file này, cách kiểm tra thực tế là thay ký tự xuống dòng trong ô bằng một ký tự thay thế trước, hoặc kiểm tra bằng thư viện phân tích chuyên dụng.
Chữ tiếng Việt hiện thành ký tự lạ trong khung xem trước là do đâu?
Do file gốc không lưu theo mã hóa UTF-8, thường là bảng mã cũ do phần mềm xuất ra. Trình duyệt đọc theo UTF-8 nên gặp byte lạ sẽ hiển thị sai. Hãy mở file bằng trình soạn thảo cho phép chọn mã hóa, lưu lại theo UTF-8 rồi kiểm tra lại, đừng cố sửa cấu trúc trên file đang sai mã.
Vì sao mở file UTF-8 bằng bảng tính lại vỡ chữ dù trên đây vẫn đúng?
Vì bảng tính không tự đoán mã hóa khi bạn nhấp đúp mở tệp. Cách xử lý là dùng chức năng nhập dữ liệu từ tệp văn bản rồi chọn tay mã hóa UTF-8, hoặc lưu file kèm dấu hiệu nhận dạng đầu tệp mà nhiều phần mềm gọi là BOM để bảng tính nhận ra ngay.
Dữ liệu tôi dán vào có bị gửi lên máy chủ không?
Không. Cả phần dán trực tiếp lẫn phần chọn tệp đều được xử lý bằng JavaScript trong trình duyệt của bạn, tệp đọc bằng bộ đọc tệp phía máy khách và không có bước tải lên. Bạn có thể kiểm tra danh sách đơn hàng, danh sách khách hàng hay bảng lương mà không lo dữ liệu rời khỏi máy.
Công cụ có kiểm tra nội dung từng ô không?
Không. Phạm vi kiểm tra chỉ gồm cấu trúc: số cột từng dòng và cách dùng dấu ngoặc kép. Ô ngày tháng sai định dạng, ô bắt buộc để trống, mã trùng lặp hay số điện thoại mất số 0 đứng đầu đều không bị bắt. Những kiểm tra đó thuộc về quy tắc nghiệp vụ của hệ thống đích chứ không thuộc về định dạng CSV.
Số điện thoại bị mất số 0 ở đầu, đó có phải lỗi file không?
Không phải lỗi của file mà là do bảng tính tự nhận chuỗi số thành kiểu số và cắt số 0 đứng đầu khi mở. Bản thân file CSV vẫn giữ nguyên ký tự. Muốn tránh, hãy dùng chức năng nhập dữ liệu và đặt kiểu văn bản cho cột đó, hoặc kiểm tra file bằng trình soạn thảo thay vì bằng bảng tính.
Dùng dấu tab làm dấu phân cách thì nhập vào ô đó bằng cách nào?
Ô nhập chỉ nhận một ký tự và bấm phím tab sẽ chuyển con trỏ sang thành phần khác, nên hãy sao chép một ký tự tab từ trình soạn thảo văn bản rồi dán vào ô. Sau khi dán, ô trông như trống nhưng bên trong đã có ký tự tab và kết quả tách cột sẽ hiện đúng.
File rất lớn thì có kiểm tra được không?
Toàn bộ nội dung được giữ trong bộ nhớ của trang nên tệp cỡ hàng chục megabyte sẽ làm trình duyệt phản hồi chậm hoặc treo. Với những tệp như vậy, hãy cắt lấy dòng tiêu đề cộng vài nghìn dòng đầu để kiểm tra cấu trúc và quy ước định dạng, phần còn lại xử lý bằng công cụ dòng lệnh.
Kết quả báo hợp lệ thì nhập vào hệ thống có chắc chạy không?
Hợp lệ ở đây nghĩa là mọi dòng cùng số cột và không có dấu ngoặc kép đặt sai, chưa nói gì về việc tên cột có khớp yêu cầu hệ thống đích hay giá trị có đúng kiểu dữ liệu không. Hãy đối chiếu thêm dòng tiêu đề với tài liệu mẫu của hệ thống nhận và chạy thử một tệp vài dòng trước khi nhập toàn bộ.
Từ khóa liên quan
- kiểm tra file CSV online
- validate CSV online
- csv validator
- lỗi file CSV
- file CSV bị lệch cột
- CSV mở bằng Excel bị dồn một cột
- dấu phân cách CSV
- CSV dấu chấm phẩy
- chuẩn RFC 4180
- dấu ngoặc kép trong CSV
- CSV lỗi font tiếng Việt
- CSV UTF-8 BOM
- kiểm tra cấu trúc file CSV
- đếm số dòng số cột CSV
- sửa file CSV lỗi
- import CSV bị lỗi
- CSV tab phân cách
- xem trước dữ liệu CSV
- công cụ kiểm tra CSV miễn phí
- CSV mất số 0 đầu số điện thoại
