先日、Netflixのコンテンツラインナップを改善するぞ!と紹介をさせて頂いたのですが、その時にこれまで以上に更新作業を効率化したい!という改善欲求がふつふつと沸き起こり、なんとか半自動化にて簡易化できないか!と一念発起致してこのシステムを作りました。Script」(GAS)を組み合わせ。スプレッドシート内にコンテンツ情報を追記して保存しボタンひとつで自動的にHTML形式のリストをGASにて生成して出力します。後はコピーによってテキストをWordpress上に流し込むだけで万事解決。いうシステムになります。簡単に説明すると「GoogleスプレッドシートのリストをHTML形式で書き出すGAS」というものになります。現状二つのパターンで公開しております。スプレッドシート内のshowを使ってリスト表示させるプログラム注意点:showでリスト表示する場合、リスト数が多くなると異常終了する可能性あり、少ないリスト数ならこれでも問題なし。スプレッドシート内をリスト化しHTML形式にてGoogleドキュメントに流し込む注意点:Googleドキュメントに流し込む場合もリストの数によってタイムアウトする可能性があり、1000件程度なら対応も可能。......どちらもそれぞれ何かしらの問題のあるプログラム。酷いものですがそんなプログラムでも参考にしていただければと思います。これまでの更新とその更新に行き詰った理由プログラムの話に入る前にこれまでの更新状況を説明。GASのスクリプト情報が知りたい場合は読み飛ばして下さい。これまでの更新は、更新リストをテキストファイルにて保存しNetflixのラインナップを見つつ、これまで蓄積してきたテキストファイルと整合性をチェックし、増えていた場合にはテキストファイルへと追記。いう、なんとも初歩的でアナログな方法をとっていました。初期の頃はこれでも問題なく、更新作業はできていたのですが徐々にNetflixのラインナップが増えてくるとテキストファイルとの整合性チェックに膨大な時間が掛かるようになってきたわけです。そこで改善を検討し半自動化へと踏み込んだのです。Script」(GAS)を勉強する位でプログラマとしての知識があるわけではありません。過去にこんなのを作っていたりするぐらいです。「Googleアナリティクスの情報をチャットワークへと流す備忘録」なので、不具合やもっと簡易的な方法。いうのもあるでしょうが......。その点は参考程度でご注意して利用頂ければと思います。GASにてHTML形式で出力するための準備と設計思考それではまず準備から。Script」(GAS)は「Googleドライブ」上に個別に設計することもできますがどのスプレッドシートを読み込んで、などの設定が面倒。Script」(GAS)を作成します。Script」(GAS)を組み込んでいるのか、というと。スプレッドシートをジャンル毎に分けてリスト化する設計を考えており外部に設けてしまうとスプレッドシートを指定するのが面倒そうだったことが要因。内部に持つことで、処理を現状使っているシート、というプログラムで共有化させるのが目的。(プログラムの共有化ができれば、後はコピーにて複製が簡単)HTML形式に変換しshowにて出力を実現するソースコード実現する機能。してはスプレッドシート内の「メニュー」に項目を追加しそのボタンを押す事で、リスト情報を元にしたHTML形式へと変換した情報を出力させます。entries);};という風になっている。html書き出しの詳しい説明と機能解説それぞれの詳しい説明を行わせて頂きます。onOpen()]というのは、スプレッドシートを開いた時に自動的に実行されるプログラム。この部分で「メニュー」部分に項目を表示させるという命令を含んでおり、メニューボタンを生成します。[spreadsheet.addMenu]にてメニューに表示し項目を追加します。本題になるのは[outputSheetToHtml()]という関数内とはいえ、やっていることは正直簡単なもの。4行~5行はシートを取得して、シート上の最終行を確認。10行の「For文」にて繰り返しリストからデータを読み込みStringへと追加して行く処理になります。67行にて出力先として「showオブジェクト」を利用しています。......ですが、ここに修正の余地があるがそれは最後に。注意点としては、HTML形式をそのまま「<td>」のように記述してしまうとスプレッドシート上に表示する際に、タグ情報と認識され非表示対象となってしまいます。そのため「<」を「<」という形に変換して無効化することで回避しましょう。【出力結果】これで実行すると、スプレッドシート内のリスト情報を元にHTML形式に整形したテキストが表示されます。あとはコピーを行いWordpressへと貼り付けて完成です。意外と作ってみると「GoogleスプレッドシートのリストをHTML形式で書き出すGAS」というのは簡単だったのですが、参考にさせて頂いたのが「CSVファイルで出力」であるとともにそこで使われていたのが今は使用できない「DocsList」だったりして別ファイルに保存するためにはどうすれば良いのか。遠回りして四苦八苦した結果、ファイル保存しなくても良いんじゃない?という逆転の発想にて現状に行き着きました。言え、実はそこに落とし穴があったようです。いうのもリストができた後にプログラムを実行してみると、あまりにもリスト数が多いためメモリーオーバーを引き起こしてしまい異常終了してしまうのです。その問題点が先ほど「修正の余地」と紹介した「showオブジェクト」です。リストの数がそれほどないような状況の場合には「showオブジェクト」でも十二分に対応することができますがリスト数が多くなりすぎた場合、上手く行きませんでした。改善の余地としては「for文」が長すぎるせいかもしれません。リストが多くメモリを圧迫するのなら、定期的に「showオブジェクト」で出力できれば改善することもできるかもしれません。Scriptの改善でHTML出力先を「Googleドキュメント」へ上記で書いていたように、スプレッドシートの「show」を使う場合どうやら出力させるリストが多すぎると異常終了してしまう現象がありました。そこで、もっと簡単にするべく取り組んだのがこちらのプログラムです。今回は「show」を使うのではなく、出力先を「Googleドキュメント」へと修正させて頂きました。難しいかな、と思ったのですが、それほど難しくなく簡単に改善できましたので参考にしていだければと思います。entries);};以上となります。共通する部分の解説は省くとして、追加した部分などを解説したいと思います。Googleドキュメントを扱う場合、「Paragraph」が重要になってきます。簡単に言うと、一行ごとに挿入するテキストを指定します。他にもフォントの大きさを指定したり、色付けを行ったりを設定することができます。今回はそういうものは必要ないので、簡単に「Paragraph」へと追加することだけを考えています。7行にて出力先である「Googleドキュメント」を指定しています。「※ID指定※」はそれぞれGoogleドキュメントのIDコードを入力して下さい。8行の「clear()」にてGoogleドキュメント内のテキストをすべて削除。実行されるたびにドキュメントが消える設定になっています。67~68行で、「Paragraph」を追加し追加した「Paragraph」内へと生成したHTMLリストを挿入。いう動作を行っています。これでも実は問題がありましてスプレッドシートの行数が多い。私の場合には「2000行」以上になるとタイムアウトしてしまいます。処理に時間が掛かりすぎているからなのでしょう。現状で回避方法としては、for文で上から下まで回すのではなく途中で中継地点を設けて、ぶつ切りにしながら出力することで対応をおこなっています。先に紹介した「show」よりも長いリストを利用できるのですが......。プログラム的問題も考えられるのでおいおい時間を見て詳しく調査などできればと思います。関係から地域活性化のヒント。「人間以外との恋ゲーム」って「亜人」じゃなくて、そっち!?と驚かせれた記事紹介ネットメディアの読了を妨げる広告には「広告出稿側が除外リストを活用」という提案を夏休みのお出かけスポット「学ぶ!未来の遊園地」チームラボ展はお子さんと一緒にワイワイできる!Googleがこれまで行ってきた無料プラットフォームビジネスがVR・ARの未来を担う?あの食玩の「神羅万象チョコ」が完結する。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。著者:elude(エルデ)SEOやSEMを仕事としており、日々様々なニュースなどに出会うことから、個人的にニュースから裏に見える事象を推察ことなどをツラツラと書き留めていく。共に、マーケティングに関しても私の考える推察を紹介。他にも個人的趣味として【ゲーム】を楽しむので、そのレビューなども紹介したいと思っている。