GASを使った社内アプリケーションで、データ管理を行っています。
先月までまともに動いていましたが、今月初めからページを表示したときに真っ白になってしまい
エラーも表示されません。
コードが肥大化しているため、分解して調べたところ
どうやら配列alldataがうまく読み込めていませんでした。
alldataの中身はalldata[0][0][0]と3次の配列になっており、
alldata[0][0]まで指定すると読めますが、alldataですべてのデータを読めなくなっているみたいです。
Logger.log(alldata)で中をのぞくときちんと取れるのですが
なぜかそれをJson等で渡そうとすると真っ白に・・・。
量などで新たに制限がかかったか、情報をお持ちのかたはいらっしゃいませんでしょうか?
追記:
元データは300×60行のデータを1セットで4年分あります。
こちらを10×4の2年分にしたところ正常に動きました。
その後、元のデータに差し替えると同じ現象がおきましたので
データ容量が多い場合に処理ができなくなっているようです。
更新を繰り返すとちゃんと処理される場合もあるようなので、内部の処理が追い付いていない?
下記、該当部分のコードです。
Javascriptに受け渡して配列を使用しています。
〇コードjs
function doGet(){
var html = HtmlService.createTemplateFromFile('index.html');
return html.evaluate();
}
〇index.html
<!DOCTYPE html> <html> <head> <?//マスターシート指定 var id = '〇〇〇'; //データシートID var hiduke = new Date(); //今日の日付を取得 var year = hiduke.getFullYear(); //西暦を取得 var syear = 2016; "データ開始年" var alldata = []; //配列を作成 alldata[0] = []; //2次配列を作成 alldata[0][0] = []; //3次配列を作成 var lastlist = []; //配列を作成 年度ごとの配列の数 lastlist[0]で2014年を取得 var yearlist = []; var sheet = SpreadsheetApp.openById(id);</head> <body> <script> var data = JSON.parse(<?=jsondata?>); ・ ・ ・ </script> </body> </html>function sheetget(newyear){ //シート情報の読み込みファンクション年度を入れて動かす。 var sheets = sheet.getSheetByName(newyear); var data = sheets.getDataRange().getValues(); alldata[i-syear] = data;//2つめに取得した年度の2次配列を挿入 lastlist.push(data.length); yearlist.push(newyear); } for(var i=syear;i<=year;i++){ //2016年からスタート 年度を渡してシートゲットファンクションを動かすループ。 sheetget(i); } var yearlast = yearlist.length; //年度リストの数 var jsondata = JSON.stringify(alldata); Logger.log(alldata); output.append(alldata); ?> <base target="_top">
あなたの回答
tips
プレビュー