Q&A
前提
別シートの内容をHTMLに表示したいが、検索キーの受け渡しができないです。
実現したいこと
検索機能と読取内容をHTMLに表示したい
コード function doGet() { const htmlOutput = HtmlService.createTemplateFromFile("index").evaluate() return htmlOutput; } function doPost(e) { //id const id = ""; const sh = SpreadsheetApp.openById(id); const sheet = sh.getSheetByName("テストデータ"); const day = new Date(); const array = [ day, ]; sheet.appendRow(array); return HtmlService.createTemplateFromFile("index").evaluate(); } function getData(search) { var readSpreadsheet = SpreadsheetApp.openById(''); var readSs = readSpreadsheet.getSheetByName('シート1'); var searchW = search;※ここに検索キー(変数)を使いたい // var searchW = '5555';※ここをコメントアウトすると該当のデータがHTMLに表示される var myData = []; if (searchW == null || searchW == '') { myData = readSs.getDataRange().getValues(); } else { let ranges = readSs.createTextFinder(searchW).findAll(); let targetRows = []; let hitRanges = []; for (let i = 0; i < ranges.length; i++) { targetRows.push(ranges[i].getRow()); hitRanges.push([ranges[i].getRow(), ranges[i].getColumn()]); } targetRows = targetRows.filter(function (x, i, self) { return self.indexOf(x) === i; }); for (let i = 0; i < targetRows.length; i++) { let data = readSs.getRange(targetRows[i], 1, 1, readSs.getLastColumn()).getValues(); myData.push(data[0]); } return myData; } }
<!DOCTYPE html> <html lang="ja"> <head> <base target="_top"> <h1>test</h1> </head> <main> <form name="formInput" action="" method="post" > <div> <label>【検索キー】</label> <input type="text" id="key" > <input type="button" onclick="searchOnclick()" value="読取"></button> <div> <label>【別のシート1】</label> <input type="text" id = "sheet1"> </div> <div> <label>【別のシート2】</label> <input type="text" id = "sheet2"> </div> <script> function searchOnclick(){ const search = document.getElementById("key").value; alert(search); google.script.run.withSuccessHandler(onSuccess).getData(search); } function onSuccess(search) { var searchData = (<?= getData(); ?>).split(","); alert(searchData); var value2 = document.getElementById("sheet1").value = searchData[0]; var value3 = document.getElementById("sheet2").value = searchData[1]; } </script> </div> </form> </main> </body> </html>
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。