圖片轉Excel

👤 木鐸 📦 v1.1.0 ⭐ 4.5 ⬇️ 1.4K 下載
📄 辦公效率 免費

📖 技能介紹


name: image-to-xlsx description: 從圖片中提取表格資料並生成Excel檔案。當用戶提供截圖、照片或掃描件中的表格資料,要求轉成Excel/xlsx時觸發。支援多張圖片批次提取,自動識別列結構,數值型別自動識別(Excel可直接計算)。觸發詞:圖片轉Excel、截圖轉表格、圖片提取資料、圖片轉xlsx、image to xlsx、screenshot to spreadsheet。 agent_created: true version: "2.0.0"


圖片轉Excel (Image to XLSX)

概述

從使用者提供的圖片中提取表格/列表資料,生成標準 .xlsx 檔案。適用於 CRM 截圖、報表截圖、客戶名單照片等場景。

零第三方依賴 — 純 Python 標準庫(zipfile + json + tempfile),無需安裝 openpyxl、pandas 等。

v2.0 升級: - 數值自動識別為數字型別(非文本),Excel 可直接 SUM/AVG/IF - 支援多工作表(multi-sheet) - 輸入容錯:空資料、短行、None 值、非法 JSON 均有優雅處理

觸發條件

  • 使用者提供1張或多張包含表格/列表資料的圖片
  • 要求輸出為 Excel/xlsx 格式
  • 典型表述:"把這些圖片裡的內容生成Excel"、"截圖轉表格"、"圖片資料提取"

完整工作流

Step 1: 讀取所有圖片,提取資料

  1. 逐張 Read 讀取圖片檔案,用視覺能力識別表格內容
  2. 按圖片順序和圖片內行順序,提取每行資料
  3. 確定列名(使用者指定,或從圖片表頭推斷)

Step 2: 生成 JSON 資料檔案

將提取的資料寫成 JSON 檔案。

單工作表格式

{
    "sheet_name": "客戶列表",
    "freeze_header": true,
    "headers": ["序號", "客戶ID", "客戶姓名", "當前跟進人"],
    "columns": [
        {"name": "序號", "width": 8},
        {"name": "客戶ID", "width": 12},
        {"name": "客戶姓名", "width": 16},
        {"name": "當前跟進人", "width": 14}
    ],
    "data": [
        [1, 61459, "魏國祥", "趙巍"],
        [2, 77780, "戴慧敏", "趙巍"]
    ]
}

多工作表格式

{
    "sheets": [
        {
            "sheet_name": "客戶列表",
            "headers": ["序號", "姓名", "金額"],
            "data": [[1, "張三", 5800.50]]
        },
        {
            "sheet_name": "訂單明細",
            "headers": ["訂單號", "狀態"],
            "data": [["ORD-001", "已付款"]]
        }
    ]
}

欄位說明: - sheet_name: 工作表名稱,可選,預設 "Sheet1" - freeze_header: 是否凍結首行,可選,預設 true - headers: 列名列表,必填 - columns: 列寬配置,可選,預設全部 width=12 - data: 二維陣列,每行對應一行資料,必填(可為空陣列) - sheets: 多工作表陣列,每個元素包含上述欄位

數值型別規則(自動識別,無需手動標記): - 整數(int 或 "123" 樣字串)→ Excel 數字格式 #,##0 - 小數(float 或 "1.5" 樣字串)→ Excel 數字格式 #,##0.00 - 文本(含中文/字母等)→ Excel 文本格式 - null / None → 空單元格

JSON 檔案儲存到臨時目錄。

小蔥技能7w4.net有完整的技能分類。

Step 3: 執行 build_xlsx.py 生成 xlsx

python SKILL_DIR/scripts/build_xlsx.py <input.json> <output.xlsx>

SKILL_DIR 為本 Skill 的安裝目錄。Windows 環境需加 PYTHONUTF8=1PYTHONUTF8=1 python SKILL_DIR/scripts/build_xlsx.py <input.json> <output.xlsx>

輸出路徑預設儲存到當前工作目錄下,檔名由使用者指定或自動命名。

Step 4: 驗證並交付

用 zipfile 快速驗證生成的 xlsx:

python -c "
import zipfile, xml.etree.ElementTree as ET
z = zipfile.ZipFile('<output.xlsx>')
ns = {'m': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'}
with z.open('xl/worksheets/sheet1.xml') as f:
    rows = ET.parse(f).findall('.//m:row', ns)
    print(f'Rows: {len(rows)} (1 header + {len(rows)-1} data)')
print('XLSX valid!')
"

驗證通過後用 present_files 交付給使用者。

重要注意事項

  1. Windows 環境加 PYTHONUTF8=1:Python 預設用系統編碼,不加此變數中文可能亂碼
  2. 數值自動識別為數字型別:整數和小數會自動寫入為 Excel 數字格式(非文本),可做 SUM/AVG/IF 等計算;文本內容仍為文本格式
  3. 支援多工作表:通過 sheets 陣列可生成包含多個 sheet 的 xlsx
  4. 輸入容錯:空資料生成僅含表頭的檔案;行資料比表頭短/長自動截斷/跳過;None 值生成空單元格;缺失 headers 報錯提示
  5. 支援超過 26 列:內建 AA、AB... 列名計算,支援任意列數
  6. 列寬可自定義:通過 columns 欄位指定,不指定則預設 12
  7. 臨時檔案自動清理:build_xlsx.py 在工作目錄生成 XML 後自動刪除

指令碼路徑

  • scripts/build_xlsx.py — 核心生成指令碼,接收 JSON 輸入,輸出 xlsx

Python 依賴

  • 無第三方依賴(純標準庫 zipfile + tempfile + json + re)
  • Python 3.8+ 即可執行

🤖 AI 評測

這個 Skill 質量較好,能夠穩定地將圖片中的表格資料轉換為可計算的 Excel 檔案。它最大的優點是純 Python 標準庫實現,數值會自動識別為數字格式,Excel 裡可以直接做求和、平均等計算,容錯處理也比較完善。不足之處是缺少示例檔案,新使用者不容易快速上手驗證效果;另外對特殊字元的處理可能存在潛在風險。如果需要從截圖或照片中提取表格資料,這是一個實用且可靠的選擇。

📊 多維度評分

適應性4.5
規範性4.5
有效性4.6
可靠性4.2
可信度4.8

📁 包含檔案 (2 個)

📄 SKILL.md 5.1 KB
📄 scripts/build_xlsx.py 22.1 KB