Files
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

5.5 KiB
Raw Permalink Blame History

領據列印模版檔案說明

檔案位置

  • 路徑: ~/Template/領據列印模版.xlsx
  • 格式: Excel 2007+ (*.xlsx)

模版結構

模版檔案包含以下工作表:

1. 勞務費工作表

名稱: 勞務費

包含的可替換欄位 (使用 [欄位名稱] 格式):

  • [領據編號] - 領據編號
  • [計畫代號] - 計畫代號
  • [計畫名稱] - 計畫名稱
  • [活動日期] - 活動日期
  • [領款人姓名] - 領款人姓名
  • [身分證字號] - 身分證字號
  • [費用別] - 費用別
  • [單價] - 單價
  • [數量] - 數量
  • [單位] - 單位
  • [扣繳類別] - 扣繳類別
  • [合計金額] - 合計金額
  • [應扣繳稅額] - 應扣繳稅額
  • [服務費] - 服務費

2. 差旅費工作表

名稱: 差旅費

包含的可替換欄位 (使用 [欄位名稱] 格式):

  • [領據編號] - 領據編號
  • [計畫代號] - 計畫代號
  • [計畫名稱] - 計畫名稱
  • [活動日期] - 活動日期
  • [領款人姓名] - 領款人姓名
  • [身分證字號] - 身分證字號
  • [費用別] - 費用別
  • [起點] - 起點
  • [訖點] - 訖點
  • [票價資訊] - 票價資訊
  • [捷運公車] - 捷運/公車費用
  • [火車] - 火車費用
  • [計程車] - 計程車費用
  • [高鐵飛機] - 高鐵/飛機費用
  • [自行開車] - 自行開車費用
  • [過路費停車費] - 過路費/停車費
  • [住宿費] - 住宿費
  • [合計] - 合計金額

完整格式複製

系統會完整複製以下所有格式設定:

儲存格格式

  • 字體(名稱、大小、粗體、斜體、刪除線、底線)
  • 字體顏色
  • 背景顏色/填充樣式
  • 邊框(上下左右、線條樣式、顏色)
  • 水平對齊(左、中、右、靠兩端)
  • 垂直對齊(上、中、下)
  • 文字換行
  • 數字格式(日期、貨幣、百分比等)

工作表格式

  • 合併儲存格
  • 列高
  • 欄寬
  • 格線顯示/隱藏
  • 格線列印設定

列印設定

  • 紙張大小
  • 橫向/直向
  • 縮放比例
  • 符合頁面設定
  • 頁面邊界(上下左右)

使用方式

  1. 在模版檔案中設計單據格式 (包含表頭、邊框、顏色等)
  2. 在需要動態替換的位置放入 [欄位名稱] 作為佔位符
  3. 系統會自動:
    • 載入模版工作簿 (唯讀)
    • 建立新的產出工作簿
    • 複製模版工作表到產出工作簿(完整保留所有格式
    • 將佔位符替換為實際數據
    • 為每筆領據產生獨立的工作表

架構設計

兩個工作簿分離設計:

  • 模版工作簿: 唯讀,載入後不修改
  • 產出工作簿: 全新建立,包含所有產出的工作表

這樣設計的優點:

  • 模版檔案保持不變,不受產出影響
  • 避免樣式衝突
  • 複製更穩定可靠
  • 可重複使用模版
  • 完整保留所有格式設定

編輯建議

  • 在 Excel 中編輯: 使用 Excel 開啟並設計單據格式
  • 保存格式: 確保以 *.xlsx 格式保存
  • 欄位替換:
    • 在任何單元格放置 [欄位名稱]
    • 支援部分替換 (例: 金額: [合計金額] 元)
    • 建議為方便維護,保持欄位為獨立單元格
  • 格式設計:
    • 自由設定字體、大小、顏色
    • 自由設定邊框、背景色
    • 可使用合併儲存格
    • 可設定水平/垂直對齊
    • 可設定列高、欄寬
    • 可設定格線顯示/隱藏
    • 可設定列印方向和邊界
    • 所有這些設定都會被完整複製到產出檔案

範例

模版中的某個單元格可能看起來像:

┌─────────────────────────────┐
│ 領據編號: [領據編號]        │  ← 粗體、14pt、置中
├─────────────────────────────┤
│ 計畫代號: [計畫代號]        │  ← 一般、12pt、靠左
│ 領款人: [領款人姓名]        │  ← 有底色、有邊框
│ 金額: [合計金額]            │  ← 貨幣格式、靠右
└─────────────────────────────┘

產出時會自動替換為:

┌─────────────────────────────┐
│ 領據編號: 123                │  ← 保留粗體、14pt、置中
├─────────────────────────────┤
│ 計畫代號: ABC001            │  ← 保留一般、12pt、靠左
│ 領款人: 王小明              │  ← 保留底色、邊框
│ 金額: 50,000                │  ← 保留貨幣格式、靠右
└─────────────────────────────┘

所有格式都會被完整保留!

技術細節

  • 複製方式: 跨工作簿完整複製
    • 行資料 + 列高
    • 儲存格內容 + 完整樣式
    • 字體 + 所有屬性
    • 邊框 + 對齊 + 格式
    • 合併儲存格區域
    • 欄寬設定
    • 格線和列印設定
  • 樣式處理: 在目標工作簿重新建立樣式物件和字體物件
  • 替換邏輯: 簡單的字串替換,支援多次出現同一欄位
  • 工作表命名: 產出的工作表名稱為 勞務費_編號_序號差旅費_編號_序號
  • 模版保留: 模版工作簿在使用後關閉,不受影響
  • 記憶體管理: 使用 MemoryStream 直接產出,不需暫存檔案