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

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

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

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

Q&A

解決済

1回答

476閲覧

スプレットシートに受信したデータを書き込みたい

kikik

総合スコア24

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

0グッド

1クリップ

投稿2023/01/20 23:22

編集2023/01/26 03:30

前提

スプレットシートにデータを書き込みたいがうまくできない

実現したいこと

受け取ったデータを
[0]はファイル名(SpreadSheet)
[1]はシート名
[2]は項目数(列数)
それ以降をスプレットシートに記入したい

発生している問題

ファイル名(SpreadSheet)とシート名
は変更出来たりしているが 
[3]以降のデータがスプレットシートに記入出来ていない

該当のソースコード

function doPost(e){ var param = e.postData.getDataAsString();//データ取得 var ary = param.split(',');//取得データをカンマで区切ってaryに格納 var fileName = ary[0];//aryの最初はファイル名(SpreadSheet) var sheetName = ary[1];//次にシート名 var n_of_colms = ary[2];//次に項目数(列数) var folder = DriveApp.getFolderById('14DfoBAvskTqsK_J0Z7DgaXz_l7hnCLDZ');//作業フォルダは固定にする:ここにフォルダIDを記入 var SS_ID = SpreadsheetApp.create(fileName).getId();//ルートにファイル名fileNameで新規スプレッドシート作成 var SS = DriveApp.getFileById(SS_ID);// 新規作成スプレッドシートのIDを取得 var files = folder.getFilesByName(fileName);//作業フォルダ内にfileNameと同じ名前のスプレッドシートが存在するか? if (files.hasNext()) { SS_ID = files.next().getId();//存在する場合はIDをそのファイルに書き換え } else{ folder.addFile(SS);//存在しない場合はルートのファイルをコピー } DriveApp.getRootFolder().removeFile(SS);//ルートに作成したスプレッドシートは不要なので削除 var ary_length = ary.length; var n_of_data = Math.round((ary_length - 3) / n_of_colms); //データの行数(組数) var spreadsheet = SpreadsheetApp.openById(SS_ID);//あらためてSpreadSheetを開く var newSheet = spreadsheet.getSheetByName(sheetName);//同じシート名があるかチェック  if(!newSheet){ newSheet= spreadsheet.insertSheet(sheetName,0);//シートがなければ新規作成 } newSheet.activate(); var columnA_Vals = newSheet.getRange('A:A').getValues(); var LastRow = columnA_Vals.filter(String).length; //空白を除き、入力済の行数を取得 var ary2 = [];//シートに書き込むための配列 for(var i=0;i<n_of_data;i++){ ary2[i] = []; //まず1次元の配列にして for(var j=0;j<n_of_colms;j++){ //その中にさらにデータを格納して2次元にする ary2[i][j]=ary[i*n_of_colms + j + 3];//ary[0]はファイル名、1はシート名、2は列数なので3を足している } } var newRange = newSheet.getRange(LastRow+1,1,n_of_data,n_of_colms);//入力済の次の行から、入力範囲を設定 newRange.setValues(ary2); //ary2の内容を一気に書き込み var graphRange = newSheet.getRange(1,1,LastRow+n_of_data,n_of_colms);//グラフ作成するデータの範囲 var oldCharts = newSheet.getCharts(); //シートにあるすべてのグラフ for (var i in oldCharts) {//グラフの数だけ繰り返す // シートからそのグラフを削除:古いグラフはすべて削除される sheet.removeChart(charts[i]); } var myChart = newSheet.newChart()// 最新のグラフの作成 .addRange(graphRange) .setChartType(Charts.ChartType.SCATTER) .setPosition(1,n_of_colms,50,200) .build(); newSheet.insertChart(myChart); }

試したこと

送信したデータは
”Filename, SheetnameC, 3,1, 10, 20, 2, 12, 28, 3, 20, 30”
だったのだが
var sheetName = ary[1];//次にシート名
の部分を
var sheetName = ary[8];//次にシート名
と変えるとシート名28という新しいシートがつくられたりしたのでデータはきちんと送れている気がします。

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

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

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

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

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

guest

回答1

0

自己解決

送信したデータ
”Filename, SheetnameC, 3,1, 10, 20, 2, 12, 28, 3, 20, 30”

”Filename, SheetnameC,3,1, 10, 20, 2, 12, 28, 3, 20, 30”
にしたら行けた

投稿2023/01/25 18:30

kikik

総合スコア24

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問