So Sánh Các Phương Pháp Xử Lý Excel Cho RAG

🔍 So Sánh Các Phương Pháp Xử Lý Excel Cho RAG

Tìm kiếm “công thức” tối ưu để trích xuất dữ liệu từ file Excel phục vụ hệ thống RAG

Giới thiệu

Trong thực tế, file Excel được sử dụng rộng rãi với nhiều định dạng phức tạp: bảng dữ liệu có màu sắc, biểu đồ, hình ảnh, và các cấu trúc đặc biệt. Khi xây dựng hệ thống RAG (Retrieval-Augmented Generation), câu hỏi đặt ra là: Làm thế nào để “nấu” dữ liệu Excel sao cho LLM hiểu được một cách tốt nhất?

Bài viết này so sánh 5 phương pháp xử lý Excel khác nhau, từ đơn giản đến phức tạp, dựa trên 4 kịch bản thực tế với các câu hỏi cụ thể để đánh giá độ chính xác.

⚠️ Lưu ý: Đây là nghiên cứu về tiền xử lý dữ liệu, không tập trung vào vector search hay prompt engineering. Mục tiêu là tìm cách tốt nhất để chuyển đổi Excel thành định dạng mà LLM có thể hiểu.

🔧 Thiết lập thử nghiệm

Công cụ sử dụng:

  • Ngôn ngữ: TypeScript
  • LLM: Gemini 2.5 Pro
  • Thư viện: XLSX, ExcelJS, JSZip, LibreOffice

4 kịch bản test:

  • Bảng chấm công: Quản lý ngày làm việc/nghỉ phép hàng tháng
  • Biểu đồ Gantt: Quản lý dự án với màu sắc phân chia thời gian
  • Báo cáo doanh số: Bảng số liệu kèm biểu đồ
  • Hướng dẫn sử dụng: Tài liệu có ảnh chụp màn hình

1. Phương pháp CSV (Plain Text)

33%

Chuyển đổi trực tiếp Excel thành text dạng comma-separated values. Đơn giản nhất nhưng mất toàn bộ định dạng.
Cách triển khai: Sử dụng thư viện XLSX với hàm sheet_to_csv()

Ưu điểm

  • Triển khai đơn giản
  • Xử lý nhanh
  • Dung lượng nhỏ

Nhược điểm

  • Mất định dạng cell
  • Không có thông tin màu sắc
  • Không chứa hình ảnh

Kết quả: CSV hoạt động tốt với dữ liệu bảng đơn giản (50% câu đúng ở báo cáo doanh số) nhưng thất bại hoàn toàn với Gantt chart, biểu đồ và hình ảnh do không capture được thông tin visual.

2. Phương pháp JSON (Structured)

50%

Chuyển đổi thành cấu trúc JSON với cặp key-value rõ ràng. Dễ parse và xử lý bằng code.
Cách triển khai: Sử dụng thư viện XLSX với hàm sheet_to_json()

Ưu điểm

  • Cấu trúc rõ ràng
  • Dễ parse và query
  • Tốt cho bảng đơn giản

Nhược điểm

  • Không có styling
  • Không có hình ảnh
  • Mất context trực quan

Kết quả: JSON vượt trội CSV nhờ cấu trúc key-value, đạt 100% với bảng chấm công. Tuy nhiên vẫn không xử lý được màu sắc, biểu đồ và hình ảnh – thất bại hoàn toàn với Gantt chart và hướng dẫn.

3. Phương pháp HTML (Rich Format)

42%

Chuyển thành bảng HTML với đầy đủ style attributes (màu nền, màu chữ, font, alignment). Giữ được nhiều thông tin định dạng.
Cách triển khai: Sử dụng ExcelJS để trích xuất chi tiết style và chuyển thành HTML table với inline CSS

Ưu điểm

  • Giữ được màu sắc
  • Bảo toàn formatting
  • Có font styles

Nhược điểm

  • Implementation phức tạp
  • Không có hình ảnh
  • File size lớn hơn

Kết quả: HTML capture được màu sắc nên có thể xử lý Gantt chart (33% thành công), nhưng độ chính xác không ổn định (ngày thường lệch 1). Vẫn không có biểu đồ và hình ảnh. Code implementation phức tạp nhưng có tiềm năng cải thiện.

4. Phương pháp PDF Image (Visual)

67%

Chuyển Excel thành PDF và encode dưới dạng image gửi cho LLM. Giữ nguyên 100% giao diện trực quan.
Cách triển khai: Sử dụng LibreOffice CLI để convert Excel → ODS → áp dụng page template → PDF, sau đó encode base64

Ưu điểm

  • Độ trung thực visual 100%
  • Có biểu đồ
  • Có hình ảnh gốc

Nhược điểm

  • Khó trích xuất bảng chi tiết
  • File size lớn
  • Cần OCR cho text

Kết quả: PDF xuất sắc với visual content – 100% chính xác với hướng dẫn có screenshot và báo cáo có biểu đồ. Tuy nhiên yếu với bảng dữ liệu chi tiết (0% với bảng chấm công) do LLM khó phân tích row/column từ image.

5. Phương pháp Hybrid (HTML + PDF) ⭐

100%

Kết hợp cả HTML và PDF Image – gửi đồng thời cả hai cho LLM. HTML cung cấp cấu trúc bảng và màu sắc, PDF cung cấp thông tin visual (biểu đồ, hình ảnh).
Cách triển khai: Không cần code mới – chỉ cần gửi kết quả của cả method 3 (HTML) và method 4 (PDF) cùng lúc cho LLM

Ưu điểm

  • Tốt nhất trong mọi tình huống
  • Xử lý được mọi loại Excel
  • Độ chính xác cao nhất
  • Bù trừ nhược điểm lẫn nhau

Nhược điểm

  • Phức tạp nhất
  • Payload lớn nhất
  • Chi phí LLM cao hơn

Kết quả: Hybrid đạt 100% (24/24 câu đúng) bằng cách tận dụng điểm mạnh của cả hai: HTML cho cấu trúc bảng + màu sắc, PDF cho biểu đồ + hình ảnh. LLM có thể cross-reference giữa hai nguồn để đưa ra câu trả lời chính xác nhất.

📊 Bảng so sánh tổng hợp

Kịch bản / Câu hỏi CSV JSON HTML PDF Hybrid
Bảng chấm công: Ai nghỉ ngày 15/10?
Bảng chấm công: Mike nghỉ khi nào?
Gantt: Thiết kế – ai & khi nào?
Gantt: Testing khi nào?
Doanh số: Vùng nào cao nhất Q3?
Doanh số: Chart xanh-đỏ cách xa nhất?
Hướng dẫn: Nút Save ở đâu?
Hướng dẫn: Bước 3 có mấy nút?
TỔNG ĐIỂM 33% 50% 42% 67% 100%

🔍 Phân tích chi tiết

CSV & JSON – Giới hạn rõ ràng

Triển khai đơn giản nhưng hoàn toàn không xử lý được màu sắc, hình ảnh, biểu đồ. JSON tốt hơn CSV một chút nhờ cấu trúc key-value rõ ràng, giúp các câu hỏi về bảng chấm công (row-based queries) chính xác hơn. Tuy nhiên, với Gantt chart và hướng dẫn có hình ảnh thì cả hai đều bất lực.

HTML (ExcelJS) – Một nửa thành công

Phương pháp này có thể trích xuất được màu nền, font style, text alignment… nên với Gantt chart có thể nhận diện màu sắc. Tuy nhiên độ chính xác không ổn định (ngày thường lệch 1), code implementation phức tạp. Nếu đầu tư thêm về xử lý date format và cell merging có thể cải thiện. Vẫn không xử lý được biểu đồ và hình ảnh.

PDF Image – Mạnh về visual

Điểm sáng lớn nhất là giữ nguyên 100% giao diện Excel: màu sắc, biểu đồ, hình ảnh, layout. Vì vậy xuất sắc với hướng dẫn có screenshot và báo cáo có chart. Tuy nhiên với bảng dữ liệu chi tiết (bảng chấm công) thì lại yếu – LLM khó phân tích quan hệ row/column từ image. Có thể trong tương lai khi LLM tốt hơn trong việc đọc image thì vấn đề này sẽ được cải thiện.

Hybrid (HTML + PDF) – Người chiến thắng 🏆

Bằng cách gửi cả HTML và PDF cho LLM, phương pháp này tận dụng được điểm mạnh của cả hai:

  • HTML cung cấp cấu trúc bảng rõ ràng + thông tin màu sắc
  • PDF cung cấp biểu đồ + hình ảnh + context trực quan
  • LLM có thể cross-reference giữa hai nguồn để đưa ra câu trả lời chính xác nhất

Trong test này đạt 100% (24/24 câu đúng), xử lý tốt mọi loại Excel. Nhược điểm duy nhất là implementation phức tạp và chi phí API cao hơn do payload lớn.

💡 Kết luận & Khuyến nghị

🎯 Khi nào dùng phương pháp nào?

  • CSV/JSON: Prototype nhanh, bảng dữ liệu đơn giản không có định dạng
  • HTML: Bảng có màu sắc, định dạng quan trọng, không có biểu đồ/hình ảnh
  • PDF: Dashboard, báo cáo có chart, tài liệu có screenshot
  • Hybrid: Hệ thống production cần độ chính xác cao, xử lý Excel phức tạp
⚖️ Trade-offs quan trọng

Độ chính xác vs Chi phí implementation vs Chi phí runtime. Hybrid có độ chính xác cao nhất nhưng cũng tốn kém nhất. Với use case cụ thể cần cân nhắc kỹ.

🚀 Bước tiếp theo cho RAG

  • Xác định chiến lược chunking (table-level vs row-level)
  • Tối ưu hóa embedding generation cho mixed content
  • Implement vector search hiệu quả
  • Thiết kế prompt engineering cho từng loại Excel
  • Xây dựng fallback strategies cho edge cases
✨ Khuyến nghị chung:
Bắt đầu với JSON cho prototype, chuyển sang HTML khi cần colors, và nâng cấp lên Hybrid cho production nếu budget cho phép. PDF đơn lẻ phù hợp cho dashboard/manual. Luôn test với dữ liệu thực tế của bạn vì mỗi tổ chức có cách dùng Excel khác nhau!

📝 Bài viết này dựa trên thử nghiệm thực tế với LLM Gemini 2.5 Pro

💬 Bạn đang dùng phương pháp nào cho RAG với Excel? Chia sẻ kinh nghiệm nhé!