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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4443閲覧

ボタンが反応しない不具合を修正したい。

GooS

総合スコア5

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/10/06 05:06

編集2020/10/11 03:35

前提・実現したいこと

ローカルファイルの中にあるテキストファイルをスプレッドシートに読み込ませたい。

補足情報の画像を見ていただきたいのですが、実行ボタンを押したらフォームが立ち上がり
ローカルファイルを読み込んで、A1にテキストを貼り付けるということを実現したいです。

発生している問題・エラーメッセージ

読み込みボタンを押しても反応しない。

該当のソースコード

function importFile() { var html = HtmlService.createHtmlOutputFromFile("index"); SpreadsheetApp.getUi().showModalDialog(html, 'ローカルファイル読込') } function writeToSheet(formFile){ //フォームで指定したファイルを読み込む var fileBlob = formFile.openFile; //テキストとして取得 var txt = fileBlob.getDataAsString("sjis"); //書き込むシートを取得 var sheet = SpreadsheetApp.getActiveSheet(); //テキストをシートに展開する sheet.getRange(1,1).setValue(txt); //取り込み出力 Browser.msgBox("ファイルを読み込みました!") } -------------------- ‐‐‐‐‐↓は別タブで作っているHTMLのデータです。------ <!DOCTYPE html> <html> <head> <base target="_top"> <script> //フォームで実行 function importFile(formFile) { //GASの関数を呼び出す google.script.run.writeToSheet(formFile);   }    </script> </head> <body> ![イメージ説明](ec71fdc5e08b15746954ff9fbd204715.png) <form id="openForm" onsubmit="importFile(this)" enctype="multipart/form-data"> <input name="openFile"type="file" /><br><br> <button type="submit">読込</button> </form> </body> </html>

試したこと

タブが問題なのか、GASが問題なのか分からない状態ですので文字の全角交じりがないかどうかや、誤字がないか調べました。
ですが、なにを間違えて読み込みボタンが反応しないのか分からない状況です。

知識不足で申し訳ないですが、どうかご助力を願いたいです。

補足情報(FW/ツールのバージョンなど)

補足として画像を添付します。

イメージ説明
上記の画像の読み込みボタンを押しても反応しない状況です。
イメージ説明
イメージ説明
ここにより詳細な情報を記載してください。

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

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

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

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

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

Hogeike

2020/10/06 05:14

問題の切り分けは行いましたか?行ったならどこまで行ったのか書きましょう。 コンソールは見ましたか?エラーは出ましたか?出ていたらエラー文を書きましょう。 「ボタンが反応しない」の詳細が不明です。
GooS

2020/10/06 06:15

回答ありがとうございます! 問題の切り分けに関して明記せず申し訳ありません。 importFileに関しては問題なく動くのですが、writeToSheet(formFile)に関しては 【エラー TypeError: Cannot read property 'openFile' of undefined at writeToSheet(importfile:9:27)】 このように表記されます。おそらくフォームを選択せずに実行しようとするために、値が無いため起こるエラーだと認識しています。 一番怪しいと思っているのは、importfile.gsの8行目にある 「var fileBlob = formFile.openFile;」ここの文言かな?と思っています。 もしくは、index.htmlの15行目にある<form id="openForm" onsubmit="importFile(this)" enctype="multipart/form-data"> ここが機能していないのかな?と思っています。
guest

回答1

0

ベストアンサー

GASのV8は、フォームからのアップロードが出来ないバグがあるっぽいです。
(過去にも同じような質問を何度か見かけました)

とりあえずV8を無効にして実行してみてください。

参考
https://dev.classmethod.jp/articles/gas-ss-csv-create-invoice/

投稿2020/10/06 07:00

sawa

総合スコア3002

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

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

GooS

2020/10/06 07:16

無事に動作しました!どこが間違っているのか分からず、ずっと探していたので本当に助かりました! Hogeikeさんも見ていただきありがとうございます! 参考元も見させていただき、勉強させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問