chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>報名課程成功通知</title>
|
||||
<style></style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 16pt">
|
||||
<p>您好:</p>
|
||||
<p>您已於 <span style="font-weight: bold">{取消日期}</span> 取消報名 <span style="font-weight: bold">{訓練日期}</span> <span style="font-weight: bold">{訓練名稱}</span> 課程成功!</p>
|
||||
<p><span style="font-size:12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>報名課程成功通知</title>
|
||||
<style></style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 16pt">
|
||||
<p>您好:</p>
|
||||
<p>恭喜您!您報名 <span style="font-weight: bold">{訓練日期}</span> <span style="font-weight: bold">{訓練名稱}</span> 課程已成功!</p>
|
||||
<p>您將於開課一周前收到行前通知單,如沒有收到相關資訊,可撥打各區辦公室電話進行了解。</p>
|
||||
<p>北基:02-2256-0859</p>
|
||||
<p>桃竹:03-339-2798</p>
|
||||
<p>中彰:04-2221-2616</p>
|
||||
<p><span style="font-size:12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,83 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>課程異動通知</title>
|
||||
<style>
|
||||
body.mail {
|
||||
font-family: 標楷體, KaiTi;
|
||||
font-size: 14pt;
|
||||
padding: 20px 20px;
|
||||
line-height: 180%;
|
||||
}
|
||||
|
||||
h1.mail {
|
||||
font-size: 18pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.mail {
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
font-size: 15pt;
|
||||
line-height: 180%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
th.mail {
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
td.mail {
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="mail">
|
||||
<div>
|
||||
<div style="width: 1000px; margin: 0 auto;">
|
||||
<h1 class="mail">{公司名稱}</h1>
|
||||
<h1 class="mail"><u>課程異動通知表</u></h1>
|
||||
<p>
|
||||
您好:<br />
|
||||
由於下列因素導致課程異動,造成您的不便,敬請見諒。
|
||||
</p>
|
||||
<table class="mail" border="1">
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練名稱</th>
|
||||
<td class="mail" colspan="3" style="width: 900px">{訓練名稱}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練地點</th>
|
||||
<td class="mail" colspan="3">{訓練地點}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練日期</th>
|
||||
<td class="mail" style="width: 410px">{訓練日期}</td>
|
||||
<th class="mail" style="width: 95px">訓練時數</th>
|
||||
<td class="mail" style="width: 410px">{訓練時數}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">異動說明</th>
|
||||
<td class="mail" colspan="3">
|
||||
{異動內容}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,91 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>學員行前通知</title>
|
||||
<style>
|
||||
body.mail {
|
||||
font-family: 標楷體, KaiTi;
|
||||
font-size: 14pt;
|
||||
padding: 20px 20px;
|
||||
line-height: 180%;
|
||||
}
|
||||
|
||||
h1.mail {
|
||||
font-size: 18pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.mail {
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
font-size: 15pt;
|
||||
line-height: 180%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
th.mail {
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
td.mail {
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="mail">
|
||||
<div>
|
||||
<div style="width: 1000px; margin: 0 auto;">
|
||||
<h1 class="mail">{公司名稱}</h1>
|
||||
<h1 class="mail"><u>學員行前通知表</u></h1>
|
||||
<p>
|
||||
您好:<br />
|
||||
感謝您參加此訓練課程,以下是重要的行前資訊,敬請詳細閱讀。
|
||||
</p>
|
||||
<table class="mail" border="1">
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練名稱</th>
|
||||
<td class="mail" colspan="3" style="width: 900px">{訓練名稱}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練地點</th>
|
||||
<td class="mail" colspan="3">{訓練地點}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">訓練日期</th>
|
||||
<td class="mail" style="width: 410px">{訓練日期}</td>
|
||||
<th class="mail" style="width: 95px">訓練時數</th>
|
||||
<td class="mail" style="width: 410px">{訓練時數}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mail" style="width: 95px">課程內容</th>
|
||||
<td class="mail" colspan="3" style="padding: 10px">
|
||||
<table class="mail" border="1" style="width: 100%;">
|
||||
<tr>
|
||||
<th class="mail" style="width: 3em">節次</th>
|
||||
<th class="mail">課程名稱</th>
|
||||
<th class="mail" style="width: 3em">時數</th>
|
||||
<th class="mail" style="width: 6em">講師</th>
|
||||
</tr>
|
||||
{課程內容}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{主旨}</title>
|
||||
<style type="text/css">
|
||||
table {
|
||||
font-size: 14pt
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #D0D0D0;
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td {
|
||||
background-color: white;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 14pt">
|
||||
<p>{內文}</p>
|
||||
<p><span style="font-size: 12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>撤簽簽核通知</title>
|
||||
<style type="text/css">
|
||||
table { font-size: 14pt }
|
||||
th { background-color: #D0D0D0; font-weight:normal; text-align:left; }
|
||||
td { background-color: white; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 14pt">
|
||||
<p>您好:</p>
|
||||
<p>辦訊系統有需要您簽核的撤簽表單</p>
|
||||
<table border="1" cellpadding="3" cellspacing="0"
|
||||
style="border-collapse: collapse;">
|
||||
<tr>
|
||||
<th>表單類別
|
||||
</th>
|
||||
<td>
|
||||
{表單類別}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>表單
|
||||
</th>
|
||||
<td>
|
||||
{表單}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
請登入辦訊系統處理撤簽簽核。<br />
|
||||
謝謝!
|
||||
</p>
|
||||
<p><span style="font-size: 12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>簽核通知</title>
|
||||
<style type="text/css">
|
||||
table { font-size: 14pt }
|
||||
th { background-color: #D0D0D0; font-weight:normal; text-align:left; }
|
||||
td { background-color: white; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 14pt">
|
||||
<p>您好:</p>
|
||||
<p>辦訓系統有需要您簽核的表單</p>
|
||||
<table border="1" cellpadding="3" cellspacing="0"
|
||||
style="border-collapse: collapse;">
|
||||
<tr>
|
||||
<th>表單類別
|
||||
</th>
|
||||
<td>
|
||||
{表單類別}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>表單
|
||||
</th>
|
||||
<td>
|
||||
{表單}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
已經過 {天數} 天尚未簽核,請登入辦訓系統處理簽核。<br />
|
||||
謝謝!
|
||||
</p>
|
||||
<p><span style="font-size: 12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>簽核通知</title>
|
||||
<style type="text/css">
|
||||
table { font-size: 14pt }
|
||||
th { background-color: #D0D0D0; font-weight:normal; text-align:left; }
|
||||
td { background-color: white; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="font-family: 標楷體, KaiTi; font-size: 14pt">
|
||||
<p>您好:</p>
|
||||
<p>辦訓系統有需要您簽核的表單</p>
|
||||
<table border="1" cellpadding="3" cellspacing="0"
|
||||
style="border-collapse: collapse;">
|
||||
<tr>
|
||||
<th>表單類別
|
||||
</th>
|
||||
<td>
|
||||
{表單類別}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>表單
|
||||
</th>
|
||||
<td>
|
||||
{表單}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
請登入辦訓系統處理簽核。<br />
|
||||
謝謝!
|
||||
</p>
|
||||
<p><span style="font-size: 12pt">(這是系統自動發送的郵件,請勿回覆)</span></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>講師行前通知</title>
|
||||
<style type="text/css">
|
||||
body.mail {
|
||||
font-family: 標楷體, KaiTi;
|
||||
font-size: 14pt;
|
||||
padding: 20px 20px;
|
||||
line-height: 180%;
|
||||
}
|
||||
|
||||
body.mail h1 {
|
||||
font-size: 18pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body.mail table {
|
||||
width: 100%;
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
border-collapse: collapse;
|
||||
font-size: 14pt;
|
||||
line-height: 180%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body.mail th {
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
body.mail td {
|
||||
border-width: 1px;
|
||||
border-color: black;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="mail">
|
||||
<div style="width: 1000px; margin: 0 auto;">
|
||||
<h1>{公司名稱}</h1>
|
||||
<h1><u>講師行前通知</u></h1>
|
||||
<p>
|
||||
致親愛的{講師姓名}老師:<br />
|
||||
甚感榮幸有此機會邀請您授課指導,課程即將開始,相關事項如後所述,若有未盡事宜,敬請老師賜教。謝謝您!
|
||||
</p>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th style="width: 150px">課程名稱</th>
|
||||
<td>{訓練名稱}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>課程地點</th>
|
||||
<td>地點:{訓練地點}<br />
|
||||
地址:{訓練地址}<br />
|
||||
{是否交通圖}附交通圖</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>課程日期</th>
|
||||
<td>{訓練日期}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>課程時間</th>
|
||||
<td>{訓練時間} 至 {訓練時間迄}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>講師備課時間</th>
|
||||
<td>{備課時間} (請老師提前 20 分鐘到場準備,熟悉環境及學員)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>聯絡人姓名</th>
|
||||
<td>{聯絡人姓名}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>聯絡人電話</th>
|
||||
<td>{聯絡人電話}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>聯絡人Email</th>
|
||||
<td>{聯絡人Email}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th style="width: 150px">項目</th>
|
||||
<td style="text-align: center;">摘要說明</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>受訓對象</th>
|
||||
<td>{受訓對象}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>講師攜帶設備</th>
|
||||
<td>請講師攜帶 {是否攜帶筆電}筆電 {是否攜帶簡報}課程簡報檔 {是否攜帶其他}其他:{攜帶其他}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>場地設備</th>
|
||||
<td>以下為安排的訓練設備,若有需要其他設備,請於開課前 3 天告知<br />
|
||||
{是否場地投影機}投影機 {是否場地麥克風}麥克風 {是否場地雷射筆}雷射筆 {是否場地筆電}筆電
|
||||
<br />
|
||||
{是否場地座位安排}座位安排 {是否場地白紙}白紙 {是否場地其他}其他:{場地其他}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>講酬給付</th>
|
||||
<td>{是否講師費}講師費:${講師費}/小時,{是否交通費}交通費:${交通費}/趟<br />
|
||||
★合計${合計}元整<br />
|
||||
★給付方式:{是否現金}現金、{是否匯款}匯款,給付日:{給付日}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>其他</th>
|
||||
<td>{是否交通安排}交通安排:{交通安排}<br />
|
||||
{是否用餐}用餐:{用餐}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,165 @@
|
||||
# 領據列印模版檔案說明
|
||||
|
||||
## 檔案位置
|
||||
- **路徑**: `~/Template/領據列印模版.xlsx`
|
||||
- **格式**: Excel 2007+ (*.xlsx)
|
||||
|
||||
## 模版結構
|
||||
|
||||
模版檔案包含以下工作表:
|
||||
|
||||
### 1. 勞務費工作表
|
||||
**名稱**: `勞務費`
|
||||
|
||||
**包含的可替換欄位** (使用 `[欄位名稱]` 格式):
|
||||
- `[領據編號]` - 領據編號
|
||||
- `[計畫代號]` - 計畫代號
|
||||
- `[計畫名稱]` - 計畫名稱
|
||||
- `[活動日期]` - 活動日期
|
||||
- `[領款人姓名]` - 領款人姓名
|
||||
- `[身分證字號]` - 身分證字號
|
||||
- `[費用別]` - 費用別
|
||||
- `[單價]` - 單價
|
||||
- `[數量]` - 數量
|
||||
- `[單位]` - 單位
|
||||
- `[扣繳類別]` - 扣繳類別
|
||||
- `[合計金額]` - 合計金額
|
||||
- `[應扣繳稅額]` - 應扣繳稅額
|
||||
- `[服務費]` - 服務費
|
||||
|
||||
### 2. 差旅費工作表
|
||||
**名稱**: `差旅費`
|
||||
|
||||
**包含的可替換欄位** (使用 `[欄位名稱]` 格式):
|
||||
- `[領據編號]` - 領據編號
|
||||
- `[計畫代號]` - 計畫代號
|
||||
- `[計畫名稱]` - 計畫名稱
|
||||
- `[活動日期]` - 活動日期
|
||||
- `[領款人姓名]` - 領款人姓名
|
||||
- `[身分證字號]` - 身分證字號
|
||||
- `[費用別]` - 費用別
|
||||
- `[起點]` - 起點
|
||||
- `[訖點]` - 訖點
|
||||
- `[票價資訊]` - 票價資訊
|
||||
- `[捷運公車]` - 捷運/公車費用
|
||||
- `[火車]` - 火車費用
|
||||
- `[計程車]` - 計程車費用
|
||||
- `[高鐵飛機]` - 高鐵/飛機費用
|
||||
- `[自行開車]` - 自行開車費用
|
||||
- `[過路費停車費]` - 過路費/停車費
|
||||
- `[住宿費]` - 住宿費
|
||||
- `[合計]` - 合計金額
|
||||
|
||||
## 完整格式複製
|
||||
|
||||
系統會完整複製以下所有格式設定:
|
||||
|
||||
### **儲存格格式**
|
||||
- ✅ 字體(名稱、大小、粗體、斜體、刪除線、底線)
|
||||
- ✅ 字體顏色
|
||||
- ✅ 背景顏色/填充樣式
|
||||
- ✅ 邊框(上下左右、線條樣式、顏色)
|
||||
- ✅ 水平對齊(左、中、右、靠兩端)
|
||||
- ✅ 垂直對齊(上、中、下)
|
||||
- ✅ 文字換行
|
||||
- ✅ 數字格式(日期、貨幣、百分比等)
|
||||
|
||||
### **工作表格式**
|
||||
- ✅ 合併儲存格
|
||||
- ✅ 列高
|
||||
- ✅ 欄寬
|
||||
- ✅ 格線顯示/隱藏
|
||||
- ✅ 格線列印設定
|
||||
|
||||
### **列印設定**
|
||||
- ✅ 紙張大小
|
||||
- ✅ 橫向/直向
|
||||
- ✅ 縮放比例
|
||||
- ✅ 符合頁面設定
|
||||
- ✅ 頁面邊界(上下左右)
|
||||
|
||||
## 使用方式
|
||||
|
||||
1. 在模版檔案中設計單據格式 (包含表頭、邊框、顏色等)
|
||||
2. 在需要動態替換的位置放入 `[欄位名稱]` 作為佔位符
|
||||
3. 系統會自動:
|
||||
- 載入模版工作簿 (唯讀)
|
||||
- 建立新的產出工作簿
|
||||
- 複製模版工作表到產出工作簿(**完整保留所有格式**)
|
||||
- 將佔位符替換為實際數據
|
||||
- 為每筆領據產生獨立的工作表
|
||||
|
||||
## 架構設計
|
||||
|
||||
**兩個工作簿分離設計**:
|
||||
- **模版工作簿**: 唯讀,載入後不修改
|
||||
- **產出工作簿**: 全新建立,包含所有產出的工作表
|
||||
|
||||
這樣設計的優點:
|
||||
- ✅ 模版檔案保持不變,不受產出影響
|
||||
- ✅ 避免樣式衝突
|
||||
- ✅ 複製更穩定可靠
|
||||
- ✅ 可重複使用模版
|
||||
- ✅ 完整保留所有格式設定
|
||||
|
||||
## 編輯建議
|
||||
|
||||
- **在 Excel 中編輯**: 使用 Excel 開啟並設計單據格式
|
||||
- **保存格式**: 確保以 *.xlsx 格式保存
|
||||
- **欄位替換**:
|
||||
- 在任何單元格放置 `[欄位名稱]`
|
||||
- 支援部分替換 (例: `金額: [合計金額] 元`)
|
||||
- 建議為方便維護,保持欄位為獨立單元格
|
||||
- **格式設計**:
|
||||
- ✨ **自由設定字體、大小、顏色**
|
||||
- ✨ **自由設定邊框、背景色**
|
||||
- ✨ **可使用合併儲存格**
|
||||
- ✨ **可設定水平/垂直對齊**
|
||||
- ✨ **可設定列高、欄寬**
|
||||
- ✨ **可設定格線顯示/隱藏**
|
||||
- ✨ **可設定列印方向和邊界**
|
||||
- 所有這些設定都會被完整複製到產出檔案
|
||||
|
||||
## 範例
|
||||
|
||||
模版中的某個單元格可能看起來像:
|
||||
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ 領據編號: [領據編號] │ ← 粗體、14pt、置中
|
||||
├─────────────────────────────┤
|
||||
│ 計畫代號: [計畫代號] │ ← 一般、12pt、靠左
|
||||
│ 領款人: [領款人姓名] │ ← 有底色、有邊框
|
||||
│ 金額: [合計金額] │ ← 貨幣格式、靠右
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
產出時會自動替換為:
|
||||
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ 領據編號: 123 │ ← 保留粗體、14pt、置中
|
||||
├─────────────────────────────┤
|
||||
│ 計畫代號: ABC001 │ ← 保留一般、12pt、靠左
|
||||
│ 領款人: 王小明 │ ← 保留底色、邊框
|
||||
│ 金額: 50,000 │ ← 保留貨幣格式、靠右
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
**所有格式都會被完整保留!**
|
||||
|
||||
## 技術細節
|
||||
|
||||
- **複製方式**: 跨工作簿完整複製
|
||||
- 行資料 + 列高
|
||||
- 儲存格內容 + 完整樣式
|
||||
- 字體 + 所有屬性
|
||||
- 邊框 + 對齊 + 格式
|
||||
- 合併儲存格區域
|
||||
- 欄寬設定
|
||||
- 格線和列印設定
|
||||
- **樣式處理**: 在目標工作簿重新建立樣式物件和字體物件
|
||||
- **替換邏輯**: 簡單的字串替換,支援多次出現同一欄位
|
||||
- **工作表命名**: 產出的工作表名稱為 `勞務費_編號_序號` 或 `差旅費_編號_序號`
|
||||
- **模版保留**: 模版工作簿在使用後關閉,不受影響
|
||||
- **記憶體管理**: 使用 MemoryStream 直接產出,不需暫存檔案
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user