簡體   English   中英

GAS 根據單元格值獲得單元格 +1?

[英]GAS get cell +1 based on cell Value?

我有一個容器綁定腳本和一個 htmlService 側邊欄。

該表包含 2 列 B,C。
B 包含一個 ID,C 包含一個項目名稱。
您將 ID 輸入 html 輸入並提交,如果存在與您輸入的 ID 匹配的 ID,則該行將被刪除。
現在我想使用 confirm() 方法來確認刪除,如下所示:“確定要從庫存中刪除“+itemName+””

我的問題是我正在努力獲取與 ID 相鄰的項目名稱單元格值。

JS

var adjacentName = ??????

function showDeleteElectronics() {
  const ui = SpreadsheetApp.getUi();
  var deleteElectronicsForm = HtmlService.createTemplateFromFile('DeleteElectronicsHTML')
  deleteElectronicsForm.itemName = adjacentName;
  var html = deleteElectronicsForm.evaluate();
  html.setTitle("Elektronik Entfernen")
  ui.showSidebar(html);
}


function deleteElectronics(formObject) {
  var electronicsID = formObject.electronicsLocalID 
  var SS = SpreadsheetApp.openById("1GSzlzj7nHPIUt-RIJfsPFobtnLbuoXedtJk1x11BdT0");
  var SHEET = SS.getSheetByName("ElektronikBestand");
  var RANGE = SHEET.getDataRange();
  var DELETE_VAL = electronicsID;
  var LOCAL_ID = 1;

  function deleteItem(){
    
    var rangeVals = RANGE.getValues();
    
    //Reverse the 'for' loop.
    for(var i = rangeVals.length-1; i >= 0; i--){
      if(rangeVals[i][LOCAL_ID] === DELETE_VAL){
        
        SHEET.deleteRow(i+1); 
      };
    };
  };

  deleteItem();
}

HTML

      <div class="sidebarwrapper">
    
          <div class="xbuttonwrapper">
              <button class="xbutton" onclick="google.script.host.close()">
                  <svg class="x" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212.982 212.982" style="enable-background:new 0 0 212.982 212.982" xml:space="preserve"><path style="fill-rule:evenodd;clip-rule:evenodd" d="m131.804 106.491 75.936-75.936c6.99-6.99 6.99-18.323 0-25.312-6.99-6.99-18.322-6.99-25.312 0L106.491 81.18 30.554 5.242c-6.99-6.99-18.322-6.99-25.312 0-6.989 6.99-6.989 18.323 0 25.312l75.937 75.936-75.937 75.937c-6.989 6.99-6.989 18.323 0 25.312 6.99 6.99 18.322 6.99 25.312 0l75.937-75.937 75.937 75.937c6.989 6.99 18.322 6.99 25.312 0 6.99-6.99 6.99-18.322 0-25.312l-75.936-75.936z"/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/></svg>
              </button>
          </div>
    
          <div class="titlewrapper">
              <img class="ctlogotitle" src="https://i.imgur.com/d1VMjvs.png">
              <h1 class="title">Elektronik <br> Entfernen</h1>
          </div>
    
          <div class="divider"></div>
    
          <form class="inputformwrapper" id="removeElectronicsFrom">
              
              <div class="inputblockwrapper">
                  <div class="labelwrapper">
                      <label class="requiredlabel" for="electronicsLocalID">Lokale ID</label>
                  </div>
    
                  <input class="inputfield" 
                      type="text"
                      placeholder="PREF00000001..."
                      minlength="12"
                      maxlength="12"                
                      id="electronicsLocalID"
                      name="electronicsLocalID"                    
                      required>
              </div>
    
              <div class="confirmbuttonwrapper">
                  <input class="confirmbutton" 
                      type="submit" 
                      value="Entfernen"                
                      id="removeElectronics">
              </div>
    
          </form>
    
      </div>

      <script>
            document.querySelector("#removeElectronicsFrom").addEventListener("submit", function (e) {
                let confirmString = "Are you sure that you want to delete " + itemName + "?";
                e.preventDefault();
                if (confirm(confirmString)) {
                  google.script.run.deleteElectronics(this);
                  $('#removeElectronicsFrom').trigger("reset");
                } else {
                  $('#removeElectronicsFrom').trigger("reset");
                }
            });
      </script>

B欄 立柱 C
ID 項目名
-- --
很多00000001 項目1
很多00000002 項目2
很多00000003 第 3 項
很多00000004 項目4
很多00000005 項目5
很多00000006 第6項
很多00000007 第 7 項
很多00000008 項目8
很多00000009 項目9
很多00000010 第 10 項

您必須調用 function 兩次。 首先獲取 itemname 然后刪除:

服務器端:

function getItemName(formObject) {
  const electronicsID = formObject.electronicsLocalID;
  const SHEET = getSheet();
  const RANGE = SHEET.getDataRange();
  const DELETE_VAL = electronicsID;
  const ITEMNAMECOL = 2;
  const LOCAL_ID = 1;
  const rangeVals = RANGE.getValues();
  //Reverse the 'for' loop.
  for (var i = rangeVals.length - 1; i >= 0; i--) {
    if (rangeVals[i][LOCAL_ID] === DELETE_VAL) {
      return {
        i,
        id: rangeVals[i][LOCAL_ID],
        itemName: rangeVals[i][ITEMNAMECOL],
      };
    }
  }
}
function getSheet() {
  const SS = SpreadsheetApp.openById(
    '1GSzlzj7nHPIUt-RIJfsPFobtnLbuoXedtJk1x11BdT0'
  );
  const SHEET = SS.getSheetByName('ElektronikBestand');
  return SHEET;
}
function deleteElectronics(i) {
  getSheet().deleteRow(i + 1);
}

客戶端:

document.querySelector("#removeElectronicsFrom").addEventListener("submit", function (e) {
  e.preventDefault();
  google.script.run.withSuccessHandler(({i, itemName}) => {
    const confirmString = "Are you sure that you want to delete " + itemName + "?";
    if (confirm(confirmString)) {
      google.script.run.deleteElectronics(i);
      $('#removeElectronicsFrom').trigger("reset");
    } else {
      $('#removeElectronicsFrom').trigger("reset");
    }
  }).getItemName()
});

暫無
暫無

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

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