Excel ↔ JSON / CSV API
Đọc file Excel .xlsx thành JSON hoặc CSV (ngày dạng ISO, dòng tiêu đề làm khoá), hoặc tạo file .xlsx nhiều sheet có định dạng từ dữ liệu JSON.
API Excel làm việc theo cả hai chiều. Tải lên file .xlsx, API trả về sheet đầu tiên đang hiển thị (hoặc sheet chỉ định bằng sheet, theo tên hay số thứ tự) dưới dạng mảng JSON lấy dòng tiêu đề làm khoá, dạng mảng các dòng (format=rows) hoặc CSV (format=csv, UTF-8 có BOM để Excel mở lại không lỗi font, delimiter=; nếu máy dùng dấu chấm phẩy). Ô ngày tháng được nhận ra qua định dạng số và trả về dạng 2026-11-11, giá trị đúng/sai giữ kiểu boolean, dòng trống bị bỏ qua, tiêu đề trùng được thêm hậu tố (Tên_2). list=sheets chỉ liệt kê các sheet, skip_rows bỏ qua phần tiêu đề báo cáo phía trên, limit giới hạn số dòng trả về.
Gửi JSON thay cho file để tạo bảng tính: data (mảng object hoặc mảng các mảng) cho một sheet, hoặc sheets ({"Tên sheet": [...]}) cho tối đa 20 sheet. Dữ liệu dạng object có dòng tiêu đề in đậm, cố định khi cuộn và có bộ lọc; chuỗi YYYY-MM-DD thành ô ngày thật của Excel (dd/mm/yyyy). Kết quả là chính file .xlsx, đặt tên theo filename.
Bộ đọc và ghi do chúng tôi tự viết, chạy hoàn toàn trong bộ nhớ: tối đa 1.000.000 ô khi ghi, 2.000.000 ô khi đọc, trong giới hạn dung lượng tệp của gói. Chưa hỗ trợ file .xls đời cũ (hãy lưu lại thành .xlsx); ô công thức được đọc theo giá trị tính gần nhất.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | không | File .xlsx cần đọc (multipart, body thô hoặc file_base64). | |
sheet | query|body | string | không | Khi đọc: tên sheet hoặc số thứ tự từ 0 (mặc định: sheet hiển thị đầu tiên). Khi ghi bằng data: tên sheet. | |
format | query|body | string | không | json | json (object theo tiêu đề), rows (mảng) hoặc csv. |
header | query|body | boolean | không | true | false: dòng đầu là dữ liệu, không phải tiêu đề. |
skip_rows | query|body | number | không | 0 | Số dòng bỏ qua trước dòng tiêu đề (0–1000). |
skip_empty | query|body | boolean | không | true | false để giữ dòng trống. |
limit | query|body | number | không | 100000 | Số dòng tối đa trả về (JSON). |
delimiter | query|body | string | không | , | Dấu phân cách CSV: , hoặc ;. |
list | query|body | string | không | sheets: chỉ liệt kê các sheet. | |
data | body | array | không | Khi ghi: mảng object hoặc mảng các mảng cho một sheet; kết quả là file .xlsx. | |
sheets | body | object | không | Khi ghi: {"Tên sheet": [các dòng]}, tối đa 20 sheet. | |
filename | body | string | không | data | Tên file tạo ra (không kèm .xlsx). |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/xlsx-convert" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "0=@./my-file"const form = new FormData();
form.append('0', fileInput.files[0]);
const res = await fetch('https://apibox.io.vn/v1/xlsx-convert', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
body: form,
});
console.log(await res.json());import requests
res = requests.post(
"https://apibox.io.vn/v1/xlsx-convert",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"0": open("my-file", "rb")},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/xlsx-convert');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_POSTFIELDS => ['0' => new CURLFile('my-file')],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"sheet": "Khách hàng",
"sheets": [
{
"index": 0,
"name": "Khách hàng",
"hidden": false
}
],
"rows": 2,
"columns": 4,
"headers": [
"Họ tên",
"Tuổi",
"Ngày mua",
"VIP"
],
"truncated": false,
"data": [
{
"Họ tên": "Nguyễn Văn An",
"Tuổi": 30,
"Ngày mua": "2026-11-11",
"VIP": true
},
{
"Họ tên": "Trần Thị Bình",
"Tuổi": 25,
"Ngày mua": "2026-01-02",
"VIP": false
}
]
}
Ứng dụng
- Nhập danh sách khách hàng, sản phẩm người dùng gửi bằng Excel
- Xuất báo cáo từ cơ sở dữ liệu ra file .xlsx
- Đổi bảng giá Excel sang CSV cho hệ thống khác
- Đọc sao kê ngân hàng, sàn TMĐT gửi dạng XLSX
Hỏi đáp
Công thức có được tính lại không?
Không: API trả về giá trị Excel đã lưu cùng file. File do phần mềm khác tạo mà không lưu giá trị thì ô công thức sẽ trống.
Ngày tháng trả về thế nào?
Dạng chuỗi ISO (2026-11-11, hoặc 2026-11-11T08:30:00 nếu có giờ), nhận biết qua định dạng số của ô.
Đọc sheet khác sheet đầu được không?
Được, dùng sheet=<tên> hoặc sheet=<số thứ tự> (bắt đầu từ 0); list=sheets cho biết tên các sheet, kể cả sheet ẩn.
API liên quan
Metadata ảnh & EXIF
Đọc kích thước, định dạng, thông tin EXIF máy ảnh, thông số chụp và vị trí GPS của ảnh JPEG, PNG, WebP, HEIC, AVIF, GIF… – upload file hoặc qua URL.
PDFMetadata PDF
Đọc metadata file PDF: số trang, tiêu đề, tác giả, phần mềm tạo, ngày tạo, phiên bản PDF, mã hoá, số trường form và khổ giấy từng trang (A4, Letter…).
PDF₫Tạo PDF báo giá, phiếu thu
Tạo PDF báo giá, phiếu thu, đơn đặt hàng, hoá đơn bán hàng gọn đẹp từ JSON: tiếng Việt chuẩn, thuế GTGT, số tiền bằng chữ và mã VietQR để thanh toán.