# 領據列印模版檔案說明 ## 檔案位置 - **路徑**: `~/Template/領據列印模版.xlsx` - **格式**: Excel 2007+ (*.xlsx) ## 模版結構 模版檔案包含以下工作表: ### 1. 勞務費工作表 **名稱**: `勞務費` **包含的可替換欄位** (使用 `[欄位名稱]` 格式): - `[領據編號]` - 領據編號 - `[計畫代號]` - 計畫代號 - `[計畫名稱]` - 計畫名稱 - `[活動日期]` - 活動日期 - `[領款人姓名]` - 領款人姓名 - `[身分證字號]` - 身分證字號 - `[費用別]` - 費用別 - `[單價]` - 單價 - `[數量]` - 數量 - `[單位]` - 單位 - `[扣繳類別]` - 扣繳類別 - `[合計金額]` - 合計金額 - `[應扣繳稅額]` - 應扣繳稅額 - `[服務費]` - 服務費 ### 2. 差旅費工作表 **名稱**: `差旅費` **包含的可替換欄位** (使用 `[欄位名稱]` 格式): - `[領據編號]` - 領據編號 - `[計畫代號]` - 計畫代號 - `[計畫名稱]` - 計畫名稱 - `[活動日期]` - 活動日期 - `[領款人姓名]` - 領款人姓名 - `[身分證字號]` - 身分證字號 - `[費用別]` - 費用別 - `[起點]` - 起點 - `[訖點]` - 訖點 - `[票價資訊]` - 票價資訊 - `[捷運公車]` - 捷運/公車費用 - `[火車]` - 火車費用 - `[計程車]` - 計程車費用 - `[高鐵飛機]` - 高鐵/飛機費用 - `[自行開車]` - 自行開車費用 - `[過路費停車費]` - 過路費/停車費 - `[住宿費]` - 住宿費 - `[合計]` - 合計金額 ## 完整格式複製 系統會完整複製以下所有格式設定: ### **儲存格格式** - ✅ 字體(名稱、大小、粗體、斜體、刪除線、底線) - ✅ 字體顏色 - ✅ 背景顏色/填充樣式 - ✅ 邊框(上下左右、線條樣式、顏色) - ✅ 水平對齊(左、中、右、靠兩端) - ✅ 垂直對齊(上、中、下) - ✅ 文字換行 - ✅ 數字格式(日期、貨幣、百分比等) ### **工作表格式** - ✅ 合併儲存格 - ✅ 列高 - ✅ 欄寬 - ✅ 格線顯示/隱藏 - ✅ 格線列印設定 ### **列印設定** - ✅ 紙張大小 - ✅ 橫向/直向 - ✅ 縮放比例 - ✅ 符合頁面設定 - ✅ 頁面邊界(上下左右) ## 使用方式 1. 在模版檔案中設計單據格式 (包含表頭、邊框、顏色等) 2. 在需要動態替換的位置放入 `[欄位名稱]` 作為佔位符 3. 系統會自動: - 載入模版工作簿 (唯讀) - 建立新的產出工作簿 - 複製模版工作表到產出工作簿(**完整保留所有格式**) - 將佔位符替換為實際數據 - 為每筆領據產生獨立的工作表 ## 架構設計 **兩個工作簿分離設計**: - **模版工作簿**: 唯讀,載入後不修改 - **產出工作簿**: 全新建立,包含所有產出的工作表 這樣設計的優點: - ✅ 模版檔案保持不變,不受產出影響 - ✅ 避免樣式衝突 - ✅ 複製更穩定可靠 - ✅ 可重複使用模版 - ✅ 完整保留所有格式設定 ## 編輯建議 - **在 Excel 中編輯**: 使用 Excel 開啟並設計單據格式 - **保存格式**: 確保以 *.xlsx 格式保存 - **欄位替換**: - 在任何單元格放置 `[欄位名稱]` - 支援部分替換 (例: `金額: [合計金額] 元`) - 建議為方便維護,保持欄位為獨立單元格 - **格式設計**: - ✨ **自由設定字體、大小、顏色** - ✨ **自由設定邊框、背景色** - ✨ **可使用合併儲存格** - ✨ **可設定水平/垂直對齊** - ✨ **可設定列高、欄寬** - ✨ **可設定格線顯示/隱藏** - ✨ **可設定列印方向和邊界** - 所有這些設定都會被完整複製到產出檔案 ## 範例 模版中的某個單元格可能看起來像: ``` ┌─────────────────────────────┐ │ 領據編號: [領據編號] │ ← 粗體、14pt、置中 ├─────────────────────────────┤ │ 計畫代號: [計畫代號] │ ← 一般、12pt、靠左 │ 領款人: [領款人姓名] │ ← 有底色、有邊框 │ 金額: [合計金額] │ ← 貨幣格式、靠右 └─────────────────────────────┘ ``` 產出時會自動替換為: ``` ┌─────────────────────────────┐ │ 領據編號: 123 │ ← 保留粗體、14pt、置中 ├─────────────────────────────┤ │ 計畫代號: ABC001 │ ← 保留一般、12pt、靠左 │ 領款人: 王小明 │ ← 保留底色、邊框 │ 金額: 50,000 │ ← 保留貨幣格式、靠右 └─────────────────────────────┘ ``` **所有格式都會被完整保留!** ## 技術細節 - **複製方式**: 跨工作簿完整複製 - 行資料 + 列高 - 儲存格內容 + 完整樣式 - 字體 + 所有屬性 - 邊框 + 對齊 + 格式 - 合併儲存格區域 - 欄寬設定 - 格線和列印設定 - **樣式處理**: 在目標工作簿重新建立樣式物件和字體物件 - **替換邏輯**: 簡單的字串替換,支援多次出現同一欄位 - **工作表命名**: 產出的工作表名稱為 `勞務費_編號_序號` 或 `差旅費_編號_序號` - **模版保留**: 模版工作簿在使用後關閉,不受影響 - **記憶體管理**: 使用 MemoryStream 直接產出,不需暫存檔案