提问人:Link 提问时间:12/12/2022 更新时间:12/12/2022 访问量:62
使用 Apps 脚本从电子表格中提取数据,但仅显示最后四位数字
Pull Data from Spreadsheet but only Display the Last Four Digits Using Apps Script
问:
我使用 Apps 脚本从 Google 电子表格中提取数据,然后以表格格式在 HTML 页面上显示数据。
我正在尝试隐藏从电子表格中提取并显示在表格上的数据,但使数据的最后四位数字可见。
我尝试了下面的 JS 代码,它在 HTML 页面上运行良好,但是当我尝试将其应用于 Apps 脚本时,JS 代码不起作用,可能是因为 HTML 页面的表格值在单元格中键入为文本,而 Apps 脚本需要从电子表格中提取其表格值,然后再将 JS 代码中的规则应用于数据以隐藏它并仅显示最后四个数据的数字。
了解如何将以下脚本应用于 Apps 脚本以隐藏数据但显示最后四位数字的任何帮助将不胜感激。
下面的 JS 和 HTML 代码;
var id_number = document.getElementById('data2');
id_number.innerHTML = new Array(id_number.innerHTML.length-3).join('x') +
id_number.innerHTML.substr(id_number.innerHTML.length-4, 4);
console.log(id_number.innerHTML);
var phone = document.getElementById('data3');
phone.innerHTML = new Array(phone.innerHTML.length-3).join('x') +
phone.innerHTML.substr(phone.innerHTML.length-4, 4);
console.log(phone.innerHTML);
<table>
<tr>
<td width = "120">ID NUMBER</td>
<td width = "15">:</td>
<td id="data2" class="hidetext">1234567890</td>
</tr>
<tr>
<td>PHONE</td>
<td>:</td>
<td id="data3" class="hidetext">0000000000</td>
</tr>
</table>
我在下面的 Apps 脚本中的 Code.gs 代码;
function doGet(e) {
return HtmlService.createTemplateFromFile("index").evaluate()
.setTitle("HTML DATA PAGE")
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
};
let ss = SpreadsheetApp.getActiveSpreadsheet();
function getData(keyword){
let sheet = ss.getSheetByName('Data');
let data = sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getDisplayValues();
let index = data.map(d => d[2]).indexOf(keyword);
console.log(data);
console.log(data.map(d => d[2]));
console.log(index);
if(index > -1){
return data[index];
}else{
return undefined;
}
}
let url = ScriptApp.getService().getUrl();
Index.html 中的“我的应用”脚本表代码
<table>
<tr>
<td width = "120">ID NUMBER</td>
<td width = "15">:</td>
<td id="data2"></td>
</tr>
<tr>
<td>PHONE</td>
<td>:</td>
<td id="data3"></td>
</tr>
</table>
答: 暂无答案
评论
keyword
getData(keyword)
ID NUMBER : xxxxxx7890
PHONE : xxxxxx0000
9797979
xxxx7979