Chào các bác, hôm nay em muốn chia sẻ một chút về cách mình dùng JavaScript để tương tác với file Excel. Dạo gần đây em có làm một dự án nhỏ cần tự động cập nhật một vài ô dữ liệu trong file Excel dựa trên thông tin từ một trang web. Ban đầu em cũng hơi băn khoăn không biết bắt đầu từ đâu, nhưng sau khi tìm hiểu thì thấy dùng Node.js kết hợp với một vài thư viện là khá ổn.
Cụ thể, em dùng thư viện xlsx (hay còn gọi là SheetJS) để đọc và ghi file Excel. Nó hỗ trợ rất nhiều định dạng khác nhau.
Đây là một đoạn code ví dụ siêu đơn giản để đọc dữ liệu từ một file Excel và ghi một giá trị mới vào một ô:
const XLSX = require('xlsx');
// Đọc file Excel
const workbook = XLSX.readFile('du_lieu.xlsx');
const sheetName = workbook.SheetNames[0]; // Lấy tên sheet đầu tiên
const worksheet = workbook.Sheets[sheetName];
// Đọc giá trị ô A1
const cellA1Value = worksheet['A1'].v;
console.log('Giá trị ô A1:', cellA1Value);
// Ghi giá trị mới vào ô B2
worksheet['B2'] = { v: 'Giá trị mới' };
// Ghi lại file
XLSX.writeFile(workbook, 'du_lieu_moi.xlsx');
console.log('Đã ghi file mới: du_lieu_moi.xlsx');Để chạy được đoạn code này, các bác cần cài đặt Node.js và thư viện xlsx. Cài đặt thì đơn giản thôi:
- Tải và cài đặt Node.js: https://nodejs.org/
- Mở terminal hoặc command prompt, chạy lệnh:
npm install xlsx
Cái này mới chỉ là bước khởi đầu thôi ạ. Từ đây, mình có thể kết hợp với việc lấy dữ liệu từ API, web scraping hoặc các nguồn khác để làm cho file Excel của mình 'thông minh' hơn rất nhiều. Ví dụ, tự động cập nhật tỷ giá, giá cổ phiếu, hoặc dữ liệu bán hàng...
Không biết có bác nào đã từng làm việc này chưa, có kinh nghiệm gì hay hoặc gặp khó khăn gì thì chia sẻ cho em với ạ!