簡體   English   中英

如何僅搜索特定列但仍將整行顯示為數組?

[英]How do I only search for a specific column but still show the whole row as array?

我目前有一個有效的搜索 function,但我想將其更改為僅搜索特定列作為基礎,但仍顯示搜索匹配的整行數據。 我相信我必須將.forEach 更改為某些內容,但我不確定如何更改。 我嘗試更改數據范圍,但如果我確實更改了它,它會影響正在顯示的整行數據。 因為我希望 E 列成為要搜索的列。

   var spreadsheetId   = "";
   var dataRange        = 'sheetName!A2:M';
   var data = Sheets.Spreadsheets.Values.get(spreadsheetId, dataRange).values;
   var arr = [];

    const validateText = (query) => {
    let regex = new RegExp(currentUser, 'i')
    return regex.test(query)
    }

    data.forEach(d => {
    if (validateText(d)) {
    arr.push(d);
      }
    })

我相信你的目標如下。

  • 您想要搜索特定列的值並使用 Google Apps 腳本檢索搜索到的行值。

模式 1:

當你的腳本被修改時,下面的修改怎么樣?

var column = 5; // Search column. 5 is column "E".
var currentUser = "###"; // Please set your expected value.
var spreadsheetId = "###"; //  // Please set your spreadsheet ID.
var sheetName = 'Sheet1'; // Please set your sheet name.

var [, ...data] = Sheets.Spreadsheets.Values.get(spreadsheetId, sheetName).values;
var arr = [];
const validateText = (query) => {
  let regex = new RegExp(currentUser, 'i')
  return regex.test(query)
}
data.forEach(d => {
  if (validateText(d[column - 1])) {
    arr.push(d);
  }
});
console.log(arr)

模式 2:

作為另一種方法,以下修改如何?

var column = 5; // Search column. 5 is column "E".
var currentUser = "###"; // Please set your expected value.
var spreadsheetId = "###"; //  // Please set your spreadsheet ID.
var sheetName = 'Sheet1'; // Please set your sheet name.

var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
var res = values.filter(r => new RegExp(currentUser, 'i').test(r[column - 1]));
console.log(res)

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM