Làm sạch CSV API
Sửa file CSV: nhận diện bảng mã (UTF-8, UTF-16, Windows-1258/1252, TCVN3, VNI), dấu phân cách và dòng tiêu đề, cắt khoảng trắng, bỏ dòng trống, dòng trùng, xuất UTF-8.
File CSV xuất từ Excel và phần mềm cũ thường bị lỗi font (“Tª n”, “ViÖt Nam”, “Vieät Nam”), dùng dấu chấm phẩy thay dấu phẩy, thừa khoảng trắng và vỡ dòng. API làm sạch CSV nhận diện bảng mã bằng cách thử từng khả năng và kiểm tra khả năng nào cho ra từ tiếng Việt thật: UTF-8 (có hoặc không BOM), UTF-16 từ “Unicode text” của Excel, Windows-1258 và Windows-1252, cùng văn bản gõ bằng font TCVN3 (ABC), VNI cũ, được chuyển sang Unicode.
API nhận diện dấu phân cách (phẩy, chấm phẩy, tab, gạch đứng) và đọc đúng các ô có ngoặc kép, rồi làm sạch dữ liệu: cắt và gộp khoảng trắng, xoá ký tự ẩn và khoảng trắng không ngắt, bỏ dòng trống, bù hoặc cắt dòng cho khớp số cột của tiêu đề, làm tên cột không trùng và tuỳ chọn xoá dòng trùng lặp. Báo cáo cho biết những gì đã nhận diện và thay đổi.
Kết quả là file CSV UTF-8 (mặc định có BOM để Excel mở đúng tiếng Việt; phân cách bằng phẩy, chấm phẩy hoặc tab) hoặc JSON.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | không | File CSV (multipart, body thô hoặc file_base64), hoặc văn bản csv. | |
csv | body | string | không | Nội dung CSV. | |
encoding | body|query | string | không | auto | Chỉ định: utf-8, windows-1258, windows-1252, utf-16le, tcvn3, vni. |
delimiter | body|query | string | không | Dấu phân cách đầu vào (mặc định: tự nhận). | |
header | body|query | boolean | không | true | Dòng đầu là tiêu đề. |
dedupe | body|query | boolean | không | false | Xoá dòng trùng. |
format | body|query | string | không | csv | csv hoặc json. |
output_delimiter | body|query | string | không | , | ,, ; hoặc tab. |
bom | body|query | boolean | không | true | Thêm BOM UTF-8 ở đầu CSV (cho Excel). |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/csv-clean" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"csv":"Tên; Tuổi ;Tỉnh\n\"Nguyễn Văn An\" ; 30 ;Hà Nội\n\nTrần Thị B;25\n","format":"json"}'const res = await fetch('https://apibox.io.vn/v1/csv-clean', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"csv": "Tên; Tuổi ;Tỉnh\n\"Nguyễn Văn An\" ; 30 ;Hà Nội\n\nTrần Thị B;25\n",
"format": "json"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/csv-clean",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"csv": "Tên; Tuổi ;Tỉnh\n\"Nguyễn Văn An\" ; 30 ;Hà Nội\n\nTrần Thị B;25\n", "format": "json"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/csv-clean');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"csv":"Tên; Tuổi ;Tỉnh\\n\\"Nguyễn Văn An\\" ; 30 ;Hà Nội\\n\\nTrần Thị B;25\\n","format":"json"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"detected": {
"encoding": "utf-8",
"delimiter": ";",
"header": true
},
"rows": 2,
"columns": 3,
"report": {
"input_rows": 5,
"empty_rows_removed": 1,
"cells_trimmed": 3,
"rows_padded": 1,
"rows_truncated": 0,
"duplicates_removed": 0,
"invisible_chars_removed": 0
},
"headers": [
"Tên",
"Tuổi",
"Tỉnh"
],
"data": [
{
"Tên": "Nguyễn Văn An",
"Tuổi": "30",
"Tỉnh": "Hà Nội"
},
{
"Tên": "Trần Thị B",
"Tuổi": "25",
"Tỉnh": ""
}
]
}
Ứng dụng
- Nhập danh sách khách hàng từ Excel không bị lỗi tiếng Việt
- Chuyển dữ liệu kế toán cũ (TCVN3 / VNI) sang Unicode
- Chuẩn hoá file CSV người dùng tải lên trước khi nạp vào cơ sở dữ liệu
- Làm sạch dữ liệu cho bảng tính, công cụ BI
Hỏi đáp
Vì sao Excel hiện CSV tiếng Việt bị lỗi?
Excel mở CSV theo Windows-1258 / 1252 trừ khi file bắt đầu bằng BOM UTF-8. File kết quả có BOM theo mặc định (bom=false để bỏ).
Có sửa được chữ gõ bằng font .VnTime không?
Có, văn bản TCVN3 (ABC) và VNI-Windows được nhận diện và chuyển sang Unicode, kể cả khi nằm trong file UTF-8.
File tối đa bao lớn?
Theo giới hạn dung lượng tệp của gói bạn dùng.
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
{ }Định dạng JSON
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.