使用 Apps 脚本从电子表格中提取数据,但仅显示最后四位数字

Pull Data from Spreadsheet but only Display the Last Four Digits Using Apps Script

提问人:Link 提问时间:12/12/2022 更新时间:12/12/2022 访问量:62

问:

我使用 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>
javascript html google-apps-script google-sheets 数据掩码

评论

0赞 Tanaike 12/12/2022
不幸的是,我无法理解 of 和你显示的 HTML 之间的关系。而且,在您的示例 Javascript 中,似乎需要像 和 一样使用 2 个值。但是,在您的 Google Apps 脚本中,似乎只返回一个值。所以,我无法理解你的预期结果。对此,我深表歉意。我能问你问题的细节吗?keywordgetData(keyword)ID NUMBER : xxxxxx7890PHONE : xxxxxx0000
0赞 Link 12/12/2022
我认为我造成了混淆,因为我没有发布我的应用脚本索引 .html 的完整代码。请查看此链接 script.google.com/macros/s/...,了解我的项目是如何工作的。当它要求输入关键字时,输入12345678。在那之后,我可以进一步解释我想要实现的目标。谢谢:)
0赞 onit 12/13/2022
所以,而不是你想显示?9797979xxxx7979
0赞 Link 12/15/2022
是的,这正是我想做的 - onit

答: 暂无答案