🚧app.writeAwardList()
/**
* app.writeAwardList()
* ====================
* 主要功能:將受獎名單寫入「得獎名單」頁面
*/
app.writeAwardList = function() {
/* ------------------------ 準備 Sheet --------------------------- */
// 「各班平均」頁面
let sheet = app.sheet.byName('得獎名單');
sheet.clear();
/* ------------------------ 準備 Data --------------------------- */
const award = app.award; // 獎金
let data = [
['編號', '班級', '姓名', '日常生活表現', '學業總平均', '金額', '蓋章或簽名']
];
app.awardList.forEach((s, i) => {
data.push([i+1, s.classNo, s.name, '表現優秀', s.average, award, '']);
});
const rows = data.length;
const cols = data[0].length;
/* ------------------------ 設定主標題 --------------------------- */
sheet.getRange(1,1).setFormula('="臺北市 "&Year&" 學年度第 "&Semester&" 學期高級中等學校學生獎學金印領清冊"');
sheet.getRange(2,1).setValue(`校名:臺北市立陽明高級中學`);
/* ------------------------ 寫入 Data --------------------------- */
const r0 = 4;
app.sheet.writeData('得獎名單', data, r0, 1);
/* ------------------------ 寫入表尾 --------------------------- */
const n = rows - 1; // 總人數
const total = n * +award; // 合計總金額
const junior = (+app.semester === 2) ? `;一年級上學期名額併入本學期,爰每班分配 2 名` : '';
const footer = [
[`合計總人數:${n}`, '', '', `合計總金額:${total}`, '', '', ''],
[`學校總人數:`, '', '', `學校總班級數:`, '', '', ''],
['', '', '', '', '', '', ''],
['承辦人:', '', '', '註冊組長:', '教務主任:', '', '校長:'],
['', '', '', '', '', '', ''],
['', '', '', '', '', '', ''],
['出納:', '', '', '主計人員:', '會計主任:', '', '',],
['', '', '', '', '', '', ''],
['', '', '', '', '', '', ''],
['⭐️ 本表填妥後,請核章。', '', '', '', '', '', ''],
[`⭐️ 二、三年級每班分配 1 名${junior}。`, '', '', '', '', '', ''],
];
app.sheet.writeData('得獎名單', footer, r0+rows+1, 1);
/* ------------------------ 範圍 (Range) --------------------------- */
const tableRange = sheet.getRange(r0, 1, rows, cols);
const tableHeader = sheet.getRange(r0, 1, 1, cols);
const avgColumn = sheet.getRange(r0+1, 5, rows-1, 1);
const tableFooter = sheet.getRange(r0+rows+1, 1, footer.length, footer[0].length);
const A1 = sheet.getRange(1,1);
/* ------------------------ 對齊 --------------------------- */
app.range.alignCenter(tableRange);
app.range.alignCenter(A1);
tableFooter.setHorizontalAlignment('left'); // 靠左
/* ------------------------ 框線 --------------------------- */
app.range.setBorder(tableRange, BorderStyle.allThin);
/* ------------------------ 設定背景 --------------------------- */
tableHeader.setBackground('#eeeeee');
/* ------------------------ 設定數字格式 --------------------------- */
avgColumn.setNumberFormat('0.00');
/* ------------------------ 其他設定 --------------------------- */
app.sheet.trim(sheet); // 刪除多餘的欄位
sheet.setColumnWidths(1, 2, 40); // 編號 班級
sheet.setColumnWidths(3, 1, 60); // 姓名
sheet.setColumnWidths(4, 1, 100); // 日常生活表現
sheet.setColumnWidths(5, 1, 80); // 學業總平均
sheet.setColumnWidths(6, 1, 60); // 金額
sheet.setColumnWidths(7, 1, 120); // 蓋章或簽名
sheet.getRange(1, 1, 1, cols).mergeAcross(); // 合併儲存格(主標題)
}
Last updated
Was this helpful?