全能本地文件處理專家

👤 李傑 📦 v1.0.0 ⭐ 4.5 ⬇️ 1K 下載
📄 辦公效率 免費

📖 技能介紹


name: smartdoc version: "1.0.0" description: 全能文件處理專家——建立、編輯、轉換和分析 xlsx/docx/pdf/pptx/csv/md 等格式,純本地 Python,零 API Key。覆蓋 Excel 公式圖表、Word 中文排版模板、PDF 合併拆分水印加密、PPT 演示、Markdown 格式轉換、資料分析報告、批次處理。觸發詞:文件 Excel Word PDF PPT 表格 報告 轉換 合併 提取 排版 批次 xlsx docx pptx csv watermark encrypt chart formula template office


SmartDoc 智慧文件大師 📄

全能文件處理專家。一個 Skill 覆蓋 Excel、Word、PDF、PPT、Markdown、CSV——建立、編輯、轉換、分析,純本地 Python,零 API Key。

Quick Reference

使用者意圖 操作 引擎
建立/編輯 Excel 公式、樣式、圖表、資料驗證、條件格式 openpyxl + pandas
建立/編輯 Word 中文排版、模板填充、頁首頁尾、目錄 python-docx
讀取 PDF 提取文本、表格 PyMuPDF + pdfplumber
合併/拆分 PDF 多檔案合併、按頁拆分 PyMuPDF
PDF 水印/加密 新增水印、密碼保護 PyMuPDF + pypdf
建立/編輯 PPT 幻燈片、圖表、中文排版 python-pptx
格式互轉 MD↔Word↔PDF↔Excel↔CSV 見轉換矩陣
資料分析報告 資料→圖表→多格式報告 pandas + openpyxl + python-docx
批次處理 批次轉換、水印、提取 自動分塊

何時使用

當以下任意條件滿足時啟用本技能:

  1. 使用者要求建立、編輯或格式化 Office 文件(Excel / Word / PPT)
  2. 使用者要求讀取、合併、拆分 PDF 檔案
  3. 使用者要求在文件格式之間轉換(如 Markdown 轉 Word)
  4. 使用者要求從文件提取資料、文本或表格
  5. 使用者要求批次處理多個文件

    7w4.net提供免費和付費技能下載。

  6. 使用者要求根據資料生成分析報告
  7. 使用者要求對文件新增水印、加密或解密
  8. 使用者提到中文文件排版最佳化
  9. 使用者使用關鍵詞:文件、表格、報告、PPT、PDF、xlsx、docx、轉換、合併、提取、排版

核心原則

🔒 安全紅線(絕不違反)

  • 永不覆蓋原檔案 — 輸出到新路徑(新增 _output 字尾),除非使用者明確要求覆蓋
  • 不執行宏/VBA — 跳過所有嵌入指令碼
  • 純本地處理 — 不聯網、不上傳、不傳送任何資料到外部服務
  • 不暴力破解 — 遇到加密 PDF 僅提示需要密碼

🎯 質量底線

  • 資料完整性 — 長數字/身份證號/手機號必須存為文本(Excel 靜默截斷超過 15 位的數字)
  • 格式保真 — 編輯現有文件時保留原有模板、樣式、合併單元格、列印設定,除非明確要求修改
  • 中文優先 — 中英文間自動加空格,中文字型同時設定 font.namerFonts.set(qn('w:eastAsia'), ...)
  • 公式安全 — 複製/編輯公式後必須驗證引用範圍,交付前零公式錯誤

📗 Excel 處理

引擎選擇:

任務型別 引擎 原因
公式、樣式、圖表、資料驗證 openpyxl 支援單元格級格式控制
資料分析、清洗、重塑 pandas DataFrame 操作更高效
大檔案(>50MB) openpyxl read_only/write_only 防止記憶體溢位

關鍵規則

規則 錯誤寫法 正確寫法
長數字存為文本 pd.read_excel('f.xlsx') pd.read_excel('f.xlsx', dtype={'身份證號': str})
合併單元格取值 ws['B2'].value 先查 ws.merged_cells.ranges,對映到左上角
公式引用驗證 複製 =SUM(A1:A10) 到 B 列 檢查是否應變為 =SUM(B1:B10),避免靜默偏移
日期序列號 直接當日期處理 注意 1900 閏日 bug,部分工作簿用 1904 系統
資料驗證下拉 手動寫入選項 DataValidation(type="list", formula1='"選項1,選項2"')
條件格式進度條 手動設定顏色 DataBarRule(start_type='num', start_value=0, end_type='num', end_value=1)

交付前檢查清單

  • [ ] 長數字列(身份證/手機/訂單號)已設為文本格式
  • [ ] 公式無 #REF!#DIV/0!#VALUE!#NAME?、迴圈引用
  • [ ] 表頭有樣式(加粗、背景色、居中),列寬自適應
  • [ ] 原有模板、命名範圍、列印設定未被破壞

Before / After:長數字精度丟失

❌ 錯誤:預設讀取,身份證號變成科學計數法
   df = pd.read_excel('users.xlsx')
   → 身份證 110101199001011234 變成 1.1010119900101e+17(後 3 位丟失)

✅ 正確:指定 dtype 為 str
   df = pd.read_excel('users.xlsx', dtype={'身份證號': str, '手機號': str})
   → 身份證完整保留:110101199001011234

📘 Word 處理

引擎: python-docx

關鍵規則

規則 說明
中文字型必須雙設定 font.name = '微軟雅黑' rFonts.set(qn('w:eastAsia'), '微軟雅黑'),缺一不可
公文邊距預設值 上 3.7cm、下 3.5cm、左 2.8cm、右 2.6cm
圖片寬度 不超過頁面可用寬度 80%,保持寬高比
頁首頁尾 通過 section.header / section.footer 設定,頁碼用 OxmlElement('w:fldChar') 插入域程式碼
目錄 插入 TOC 域程式碼,提示使用者在 Word 中右鍵"更新域"
模板填充 搜尋 {{key}} 佔位符替換為值,必須同時掃描段落和表格

Before / After:模板填充

❌ 錯誤:只替換段落中的佔位符,忽略表格
   → 表格裡的 {{日期}} 仍然顯示佔位符

✅ 正確:遍歷 doc.paragraphs + doc.tables 中所有 cell
   → 段落和表格內的佔位符都被替換

📕 PDF 處理

引擎分工:

操作 引擎 關鍵 API
提取文本 PyMuPDF page.get_text()
提取表格 pdfplumber page.extract_tables()
合併 PDF PyMuPDF merged.insert_pdf(pdf)
拆分 PDF PyMuPDF new_pdf.insert_pdf(pdf, from_page=i, to_page=i)
新增水印 PyMuPDF page.insert_text(..., morph=(center, mat))
加密/解密 pypdf writer.encrypt() / reader.decrypt()

關鍵規則

規則 說明
PDF 不可直接編輯 "編輯 PDF" = 提取內容 → 修改 → 重新生成
中文水印必須指定字型檔案 fontfile="C:/Windows/Fonts/msyh.ttc",內建字型 helv 無中文字形
水印旋轉只能用 morph insert_textrotate 只接受 0/90/180/270,自定義角度必須用 morph=(center, matrix)
合併時保留書籤 fitz.get_toc() / set_toc() 保留原書籤
掃描件 PDF 純圖片無文本層,必須 OCR(推薦 PaddleOCR),需提醒使用者
fitz.open 必須用 with 批次處理時未關閉檔案控制代碼會耗盡資源

Before / After:中文水印

❌ 錯誤:用內建字型 + rotate 引數
   page.insert_text(center, "機密檔案", fontname="helv", rotate=45)
   → ValueError: bad rotate value(rotate 只支援 0/90/180/270)
   → 即使不報錯,helv 字型也無法渲染中文

✅ 正確:用系統字型 + morph 引數
   mat = fitz.Matrix(cos, sin, -sin, cos, 0, 0)
   page.insert_text(center, "機密檔案", fontfile="msyh.ttc", morph=(center, mat))
   → 中文正常渲染 + 任意角度旋轉

📙 PPT 處理

引擎: python-pptx

關鍵規則

規則 說明
字型必須在 run 級別設定 p.font.size 無效,必須 run = p.add_run(); run.font.size = Pt(44)
預設 16:9 寬屏 slide_width = Inches(13.333), slide_height = Inches(7.5)
中文標題字型 微軟雅黑/思源黑體(正文),等線/方正大標宋(標題)
單頁文字限制 不超過 6 行,每行不超過 20 箇中文字元
圖表配色 使用專業色板,避免預設彩色

Before / After:PPT 字型設定

❌ 錯誤:在段落級別設定字型
   p.text = "專案彙報"
   p.font.size = Pt(44)       # 無效!儲存後字型丟失
   p.font.bold = True          # 無效!

✅ 正確:在 run 級別設定字型
   run = p.add_run()
   run.text = "專案彙報"
   run.font.size = Pt(44)      # 有效
   run.font.bold = True         # 有效

🔄 格式轉換

轉換矩陣

源 → 目標 引擎 注意事項
Markdown → Word python-docx 解析 MD 標題/列表/表格/程式碼塊對映為 Word 樣式
Markdown → PDF weasyprint / fitz MD→HTML→PDF,需處理中文字型
Markdown → PPT python-pptx 每個 # 標題生成一張幻燈片
Excel → CSV pandas 輸出用 UTF-8 BOM 編碼(Excel 相容)
Excel → Markdown pandas df.to_markdown()
Word → PDF LibreOffice 命令列 格式保真度遠高於純 Python 方案
Word → Markdown python-docx 提取文本+結構對映
PDF → 文本 PyMuPDF page.get_text()
PDF → Markdown PyMuPDF 提取文本+嘗試還原結構
CSV → Excel pandas + openpyxl 自動型別推斷,長數字列指定 dtype=str

Before / After:MD→Word 表格處理

❌ 錯誤:遇到 | 表格行直接 pass/跳過
   → Markdown 中的關鍵資料表格被靜默丟棄,使用者開啟 Word 發現表格不見了

✅ 正確:收集連續 | 行 → 解析 → doc.add_table()
   → 所有 Markdown 表格完整保留到 Word 文件中

Word → PDF 最佳方案

# 推薦:LibreOffice 命令列(格式保真度最高)
soffice --headless --convert-to pdf input.docx --outdir ./output/

# Windows
"C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to pdf input.docx

Markdown → Word 轉換規則

Markdown 元素 Word 對映 注意
# / ## / ### add_heading(level=N)
- item / * item List Bullet 樣式
1. item List Number 樣式
> quote Intense Quote 樣式
```code``` Normal + Consolas 9pt 收集多行,整體設為等寬字型
\| table \| add_table() 收集連續 | 行,解析後建立表格,不能丟棄
**bold** / *italic* Run 級別加粗/斜體 需解析行內格式

📊 智慧報告生成

報告結構模板

一、摘要(3-5 句話概括核心發現)
二、資料概覽(describe() 統計表 + 行數/列數/缺失值)
三、關鍵發現(top N 洞察,每條配資料支撐)
四、圖表分析(柱狀圖/餅圖/折線圖,標題和軸標籤必須中文)
五、結論與建議(可執行的下一步行動)

關鍵規則

規則 說明
圖表標題/軸標籤/圖例 必須為中文
數值格式 千分位分隔符,金額用 ¥ 符號
日期格式 統一 YYYY年MM月DD日
百分比 保留 1-2 位小數
Excel 圖表 openpyxl.chartBarChart/PieChart/LineChart + Reference
Word 表格 add_table(style='Light Grid Accent 1')

⚡ 批次處理

批次處理規則

步驟 操作
1. 預檢 列出待處理檔案及數量,確認後再執行
2. 執行 單檔案失敗不中斷整體,try/except 記錄失敗項
3. 輸出 摘要:成功 N 個 / 失敗 M 個 / 跳過 K 個
4. 斷點 記錄已處理檔案,重跑時自動跳過

輸出命名

  • 單檔案:原始檔名 + _output / _converted 字尾
  • 批次輸出:output_YYYYMMDD_HHMMSS/ 子目錄
  • 臨時檔案:temp_ 字首,完成後自動清理

通用工作流

識別意圖 → 確定格式 → 查表選引擎 → 檢查依賴 → 執行 → 驗證 → 報告結果

依賴安裝

首次使用自動檢查並安裝:

pip install openpyxl python-docx PyMuPDF python-pptx pandas pdfplumber pypdf
# 注意:PyMuPDF 安裝後 import 名為 fitz;pypdf 6.x 已移除 PdfMerger

大檔案策略(>50MB)

格式 策略
Excel openpyxl read_only 讀 / write_only
PDF fitz 逐頁處理,不一次載入
CSV pandas.read_csv(chunksize=10000) 分塊迭代

中文排版規範

中英文混排

  • 中英文之間加半形空格:"使用 Python 處理"而非"使用Python處理"
  • 中文與數字之間加半形空格:"共 10 個檔案"而非"共10個檔案"
  • 全形標點後不加空格,半形標點後加一個空格
  • 英文專有名詞保持原始大小寫(Python、Excel、PDF)

標點符號

  • 中文正文用全形標點(,。;:!?""''())
  • 程式碼和技術文件用半形標點
  • 省略號用 ……(六個點),不用 ...
  • 連線線用 ——(兩個破折號)

字型方案

場景 中文字型 英文字型
正文 微軟雅黑 / 蘋方 Segoe UI / Helvetica
標題 等線 / 方正大標宋 Arial / Georgia
程式碼 Consolas / Source Code Pro
表格 微軟雅黑 Segoe UI

錯誤處理

錯誤場景 處理方式
檔案不存在 提示路徑,建議用 Glob 查詢
檔案被佔用 提示關閉檔案,輸出到替代路徑
格式不支援 列出支援的格式,建議替代方案
庫未安裝 自動 pip install,失敗則提示手動安裝
編碼錯誤 依次回退 UTF-8 → GBK → GB18030 → latin1
大檔案超時 自動分塊,單頁/單表為單位
加密 PDF 提示需要密碼,不嘗試暴力破解
空檔案/空表格 提示內容為空,不生成空輸出檔案
掃描件 PDF 提示需 OCR(推薦 PaddleOCR/pytesseract)

使用示例

示例 1:建立專案進度 Excel

使用者:幫我建立一個專案進度跟蹤表

→ 引擎:openpyxl
→ 操作:帶樣式表頭 + 資料驗證(狀態下拉框)+ 條件格式(進度資料條)
→ 輸出:project_tracker.xlsx

示例 2:PDF 合併

使用者:把 reports 資料夾下所有 PDF 合併成一個

→ 引擎:PyMuPDF
→ 操作:掃描目錄 → 按檔名排序 → 逐個插入 → 保留書籤
→ 輸出:reports_merged.pdf

示例 3:Markdown 轉 Word

使用者:把會議紀要的 Markdown 轉成正式的 Word 文件

→ 引擎:python-docx
→ 操作:解析 MD 標題/列表/表格/程式碼塊 → 對映為 Word 樣式 → 應用中文公文格式
→ 輸出:meeting_notes.docx

示例 4:資料分析報告

使用者:分析這個 Excel 的銷售資料,生成一份報告

→ 引擎:pandas + openpyxl + python-docx
→ 操作:統計概覽 → 關鍵發現 → 圖表 → 結論建議
→ 輸出:sales_report.docx + sales_report.xlsx

示例 5:批次 Word 轉 PDF

使用者:把 contracts 目錄下所有 Word 轉成 PDF

→ 引擎:LibreOffice 命令列
→ 操作:掃描目錄 → 確認檔案列表 → 批次轉換 → 輸出摘要
→ 輸出:output_20260616/ 目錄

示例 6:PDF 加密

使用者:給這份 PDF 加個密碼

→ 引擎:pypdf
→ 操作:讀取 → 複製所有頁面 → encrypt() → 儲存
→ 輸出:encrypted.pdf

示例 7:Word 模板批次填充

使用者:用這個合同模板,把 Excel 裡的 50 個員工資訊填進去,生成 50 份合同

→ 引擎:python-docx + pandas
→ 操作:讀取 Excel 資料 → 遍歷每行 → 替換模板佔位符(段落+表格) → 逐個儲存
→ 輸出:contracts/ 目錄下 50 個 docx 檔案

🤖 AI 評測

這個 Skill 功能非常全面,一個就能處理文件、表格、PDF、PPT 等各種常見格式,對中文使用者很友好,比如自動處理中英文混排、中文字型、CSV 編碼等問題。它把每種操作的注意事項都寫得很清楚,還提供了正確和錯誤寫法的對比,新手也能看懂。缺點是目前只有使用指南,沒有現成的程式碼模板可以直接呼叫。總體來說質量不錯,覆蓋了文件處理的絕大部分場景。

📊 多維度評分

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

📁 包含檔案 (3 個)

📄 SKILL.md 15.3 KB
📄 _meta.json 421 B
📄 skill-card.md 3.4 KB