Skip to content

ariesho2903/excel2image

Repository files navigation

excel2image

Tool CLI và API đơn giản để chuyển file Excel thành ảnh PNG, mỗi sheet sẽ được xuất ra một ảnh riêng.

Mặc định tool dùng engine auto: ưu tiên render chất lượng cao bằng LibreOffice (giữ format gần với file gốc), nếu môi trường không có LibreOffice thì tự fallback về renderer đơn giản.

Cài đặt

pip install -r requirements.txt

Sử dụng

python excel_to_image.py input.xlsx

Mặc định, ảnh sẽ được xuất vào thư mục output nằm cùng cấp với file Excel.

Tuỳ chọn

  • --output để chỉ định thư mục xuất ảnh
  • --sheet để chỉ convert một hoặc nhiều sheet cụ thể
  • --font-size để chỉnh kích thước chữ của ô
  • --title-font-size để chỉnh kích thước tiêu đề sheet
  • --engine auto|libreoffice|simple để chọn engine render
  • --dpi để chỉnh chất lượng ảnh khi dùng LibreOffice (mặc định 220)

Ví dụ:

python excel_to_image.py report.xlsx --output images --sheet Sheet1 --sheet Summary

Ví dụ ép dùng chất lượng cao:

python excel_to_image.py report.xlsx --engine libreoffice --dpi 300

API cho n8n

Chạy local:

uvicorn api:app --host 0.0.0.0 --port 8000

Endpoint chính:

  • GET /health để kiểm tra server
  • POST /convert để upload file Excel và nhận về một file ZIP chứa các ảnh PNG

Query tùy chọn cho POST /convert:

  • engine=auto|libreoffice|simple
  • dpi=220 (chỉ áp dụng cho LibreOffice)

Ví dụ n8n:

  • Dùng node HTTP Request
  • Method: POST
  • Body Content Type: Form-Data
  • Parameter Type: n8n Binary File
  • Name: file
  • Input Data Field Name: data (hoặc tên binary property từ node trước)
  • URL: http://your-server:8000/convert

Nếu muốn chỉ convert một số sheet, truyền query sheet=Sheet1 nhiều lần.

Deploy bằng Docker

docker build -t excel2image .
docker run -p 8000:8000 excel2image

Docker image đã cài sẵn LibreOffice + pdftoppm để render chất lượng cao.

Deploy bằng Portainer

Nếu bạn cài qua giao diện Portainer, cách dễ nhất là dùng Stack:

  1. Vào Portainer -> Stacks -> Add stack.
  2. Đặt tên stack, ví dụ excel2image.
  3. Chọn tab Web editor.
  4. Dán nội dung file docker-compose.yml vào.
  5. Bấm Deploy the stack.

Sau khi chạy xong, API sẽ lắng nghe ở port 8000.

Nếu bạn dùng node HTTP Request trong n8n, URL sẽ là:

http://<server-ip>:8000/convert

Kiểm tra nhanh:

GET http://<server-ip>:8000/health

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors