Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động hóa xử lý file Excel với JavaScript: Xóa dòng trống và định dạng có điều kiện

Ngô Huân Nga 29/03/2026 11:51 442 lượt xem 1 trả lời

Chào các bác, hôm nay em muốn chia sẻ một chút kinh nghiệm về việc dùng JavaScript để xử lý file Excel. Em thấy trên diễn đàn mình có nhiều bài viết về Python, nhưng JavaScript cũng là một lựa chọn không tồi, đặc biệt là khi các bác làm việc nhiều với các ứng dụng web có tích hợp Excel.

Tình huống của em là cần xử lý một file Excel có hàng ngàn dòng dữ liệu, trong đó có rất nhiều dòng trống cần xóa và một số cột cần áp dụng định dạng có điều kiện. Làm thủ công thì mất thời gian mà dễ sai sót.

Em đã thử dùng thư viện SheetJS (còn gọi là xlsx) để đọc và ghi file Excel bằng JavaScript. Dưới đây là một ví dụ đơn giản để xóa các dòng trống và áp dụng định dạng có điều kiện cho một cột:


// Giả định bạn đã cài đặt SheetJS và có một file Excel tên 'data.xlsx'

const XLSX = require('xlsx');

// Đọc file Excel
const workbook = XLSX.readFile('data.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];

// Chuyển đổi dữ liệu sang mảng các đối tượng
const data = XLSX.utils.sheet_to_json(worksheet);

// Lọc bỏ các dòng trống (giả định dòng trống là dòng có tất cả các ô rỗng)
const filteredData = data.filter(row => {
  return Object.values(row).some(value => value !== undefined && value !== null && value !== '');
});

// Áp dụng định dạng có điều kiện (ví dụ: tô màu đỏ nếu giá trị cột 'Doanh số' < 100)
filteredData.forEach(row => {
  if (row['Doanh số'] && row['Doanh số'] < 100) {
    // Lưu ý: SheetJS không trực tiếp hỗ trợ định dạng có điều kiện phức tạp.
    // Bạn có thể cần xử lý thêm bằng các công cụ khác hoặc ghi file CSV rồi dùng Excel để định dạng.
    // Tuy nhiên, bạn có thể ghi đè giá trị hoặc thêm cột ghi chú nếu cần.
    row['Ghi chú'] = 'Cần xem xét';
  }
});

// Tạo một workbook mới từ dữ liệu đã lọc
const newWorkbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(newWorkbook, XLSX.utils.json_to_sheet(filteredData), sheetName);

// Ghi file Excel mới
XLSX.writeFile(newWorkbook, 'processed_data.xlsx');

console.log('Đã xử lý xong file Excel!');

Đây chỉ là một ví dụ cơ bản. Với JavaScript và các thư viện như SheetJS, chúng ta có thể làm được nhiều hơn thế, ví dụ như tạo biểu đồ, xử lý dữ liệu phức tạp, hoặc thậm chí là tự động hóa gửi báo cáo qua email nếu kết hợp với các dịch vụ backend.

Có bác nào đã từng dùng JavaScript để tương tác với Excel chia sẻ thêm kinh nghiệm không ạ?

0

Hay quá bạn ơi! Mình cũng đang tìm hiểu về cách dùng JavaScript để tự động hóa Excel. Bạn có thể chia sẻ thêm về cách bạn "kết nối" JavaScript với file Excel được không? Mình hay dùng VBA nên có chút tò mò về phương pháp này.

1

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký