質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

569閲覧

GAS 別シートのデータ読み込み HTMLに表示したい

user456456

総合スコア2

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/12/21 09:15

前提

別シートの内容を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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ご返信ありがとうございます。

稚拙なコードですいません

下記のコードで自己解決しました。

これで様子見をしようと思います

function getData(search) { var readSpreadsheet = SpreadsheetApp.openById(''); var readSs = readSpreadsheet.getSheetByName('シート1'); var data = readSs.getDataRange().getValues(); for (var i = 1; i < data.length; i++) { if (data[i][0] == search) { var key = data[i][0]; var output = data[i][1]; return { key: key, output: output }; } } return { key: "Null!", output: "Null!" }; }

投稿2022/12/22 01:02

user456456

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

var searchData = (<?= getData(); ?>).split(",");

var searchData = search.split(",");

とした場合はいかがでしょうか?

投稿2022/12/21 22:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問