Files
safelist-plus/Code.gs
Julian Freeman bd4e9033e4 init
2025-12-21 21:30:51 -04:00

52 lines
1.3 KiB
JavaScript

/**
* Web App 入口
*/
function doGet() {
return HtmlService.createTemplateFromFile('index')
.evaluate()
.setTitle('安全列表Plus')
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
/**
* 一次性获取所有 Sheet 数据,减轻多次请求的负担
*/
function getAllData() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheets = ["Main", "CN", "EN", "ES"];
const result = {};
sheets.forEach(name => {
const sheet = ss.getSheetByName(name);
if (sheet) {
result[name.toLowerCase()] = getRowsData(sheet);
} else {
result[name.toLowerCase()] = [];
}
});
return result;
}
/**
* 辅助函数:将 Sheet 转为对象数组
*/
function getRowsData(sheet) {
const data = sheet.getDataRange().getValues();
if (data.length < 1) return [];
const headers = data[0];
const rows = data.slice(1);
return rows.map(row => {
let obj = {};
headers.forEach((header, i) => {
// 这里的处理是为了防止日期对象在传输时出错,转为 ISO 字符串
let val = row[i];
if (val instanceof Date) {
val = val.toISOString();
}
obj[header] = val;
});
return obj;
});
}