Python 自動化辦公腳本提示詞(批量合併 Excel、批量重命名文件,先預覽再執行)

每週都要手動合併幾十個表格、按規則重命名一堆文件、把數據拆分到多個文件時用:描述文件情況和處理規則,得到零基礎也能運行的 Python 腳本,預設只預覽不改動、結果輸出到新文件夾,並附安裝和運行步驟。

NNathaniel bigo··原創首發·AI 輔助撰寫
通用大模型 對話模型通用
【角色】你是一名給非程式員寫辦公自動化腳本的工程師。你寫的腳本要讓第一次裝 Python 的人也能跑通,而且絕不能弄壞原始文件。

【我的情況】
- 電腦系統:[Windows/macOS]
- Python 基礎:[零基礎/會一點]
- 要處理的文件:[如 30 個 .xlsx 銷售表]
- 文件所在文件夾:[文件夾路徑]
- 文件結構說明(表頭在第幾行、有幾個工作表、有沒有合併單元格;能貼幾行樣例更好):
  [文件結構與樣例]
- 處理規則:[處理規則描述]
- 期望結果:[期望得到的文件]

【腳本要求】
1. 安全:
   - 原始文件只讀,所有結果寫到新的輸出文件夾;
   - 提供「預覽模式」並預設開啟:只打印將要做什麼(例如每個文件讀到多少行、每個舊文件名對應的新文件名),確認後把開頭的 DRY_RUN 改為 False 再真正執行;
   - 批量重命名要檢查新文件名衝突,衝突時停下並報告,不能覆蓋。
2. 健壯:
   - 跳過 Excel 打開時產生的 ~$ 開頭的臨時文件和隱藏文件;
   - 工號、手機號、訂單號這類列按文本讀取,避免前導 0 丟失或變成科學計數法;
   - 讀取 .xls 舊格式需要額外的 xlrd 庫,.csv 要處理 GBK 和 UTF-8 兩種編碼;
   - 某個文件出錯時記錄原因並繼續處理其他文件,最後彙總成功和失敗的清單。
3. 易用:
   - 需要改的參數(文件夾路徑、列名、規則)集中放在腳本開頭,並用中文註釋說明;
   - 運行結束打印彙總:處理了幾個文件、共多少行、輸出到哪裏。
4. 附上:安裝 Python 與依賴庫的步驟(pip 命令)、運行方法、常見報錯及解決辦法。

【輸出格式】
先複述處理規則和你的假設 → 完整腳本(一個代碼塊)→ 安裝與運行步驟 → 常見報錯 FAQ → 需要我確認的問題。

高亮處換成你自己的內容:[Windows/macOS]、[零基礎/會一點]、[如 30 個 .xlsx 銷售表]、[文件夾路徑]、[文件結構與樣例]、[處理規則描述]、[期望得到的文件]

ChatGPT Plus 充值

已被複製 0 次

使用說明

怎麼填變量:[文件結構與樣例] 最重要:把表頭和前 3 行數據複製成文字貼進來(敏感數據先替換成假數據),AI 才知道列名是什麼、要不要跳過標題行。[處理規則] 寫成可判斷的規則,例如「按文件名裏的日期排序,合併後加一列『來源文件』,金額列求和」。

常見坑:

  • 各個文件的列名不完全一致(「銷售額」和「銷售額(元)」),合併後會多出空列;遇到這種情況讓它先輸出「各文件列名對比表」。
  • 合併單元格、多行表頭需要特殊處理,要在樣例裏說明。
  • 公式單元格:用 openpyxl 讀取時預設得到公式本身,加 data_only=True 才能拿到 Excel 上次儲存時計算出的值。

追問技巧:第一次運行報錯時,把完整報錯貼回去;跑通後可以追問「改成雙擊就能運行的版本」,或者「每週一早上自動運行」。

示例輸出

示例,僅供參考(合併文件夾內所有 .xlsx,節選)
python
from pathlib import Path
import pandas as pd   # 需要先安裝:pip install pandas openpyxl

SRC = Path(r"D:\報表\待合併")        # 要合併的文件夾
OUT = Path(r"D:\報表\輸出\合併結果.xlsx")
DRY_RUN = True                       # 預覽模式:確認無誤後改成 False

frames = []
for f in sorted(SRC.glob("*.xlsx")):
    if f.name.startswith("~$"):      # 跳過 Excel 打開時生成的臨時文件
        continue
    df = pd.read_excel(f, dtype={"工號": str})   # 工號按文本讀,保留前導 0
    df["來源文件"] = f.name
    frames.append(df)
    print(f"{f.name}: {len(df)} 行")

if frames and not DRY_RUN:
    OUT.parent.mkdir(parents=True, exist_ok=True)
    pd.concat(frames, ignore_index=True).to_excel(OUT, index=False)
    print(f"已輸出到 {OUT}")

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~