【GAS】Googleドキュメントのファイル一覧をスプレッドシートに書き出す

参考
qiita.com

/** @OnlyCurrentDoc */
function outputFileListLink() {
  //フォルダIDを指定する
  var folder_id = "1K-Zig9uIKt9iH2XWQYe3nrngyzkyB3eA"; //URLの「~~folders/{この部分}」

  //フォルダ情報を取得する
  var folder = DriveApp.getFolderById(folder_id);
  //フォルダ情報からファイル一覧を取得する
  var files = folder.getFiles();

  var list = [];  //この変数のファイル名・URLが入っていきます
  //フォルダ内のファイル一覧を1件ずつ読み込む
  while(files.hasNext()) {
    //ファイル情報を1件読む
    var buff = files.next();
    //ファイル名取得
    var xlsName = buff.getName();
    //ファイル名の1文字目から"_"が最初に出てきた位置までの文字列を取得
    var nameIndex = xlsName.indexOf("_"); //何文字目に"_"が入っているか取得
    xlsName = xlsName.substring(0, nameIndex);  //1文字目から指定文字目までの文字列を取得

    //ファイルのURLを取得
    var xlsLink = buff.getUrl();
    //URLからダウンロード用のリンク文字列を作成
    xlsLink = xlsLink.replace("file/d/", "uc?export=download&id="); //文字を置換
    xlsLink = xlsLink.replace("/view?usp=drivesdk","")  //文字を置換
    xlsLink = "=HYPERLINK(\"" + xlsLink + "\")" //ハイパーリンクの関数を設定

    //ファイル名、URLを格納
    list.push([xlsName, xlsLink]);
  };

  // ファイルが0件なら処理終了
  if(list.length == 0) {
    return;
  }

  // 出力先シートを取得する
  var ss = SpreadsheetApp.getActive();  //アクティブになっているスプレッドシートを取得
  var sheet = ss.getSheetByName("シート2"); //シート2を取得
  // シートの内容をクリア
  sheet.clearContents();
  // 出力範囲を取得
  var rowIndex = 1; // The starting row of a range.
  var colIndex = 1; // The starting row of a column.
  range = sheet.getRange(
    rowIndex,      // 行始点位置
    colIndex,      // 列始点位置
    list.length,   // 行終点位置(ファイルの数を指定)
    list[0].length // 列終点位置(2(ファイルとURL)を指定)
  );

  // 対象の範囲にまとめて書き出します
  range.setValues(list);
}

【ActiveReports】折れ線グラフの目盛りを数値書式に設定

チャートの縦軸の目盛りを数値書式にする方法

  • チャートのプロパティから「グラフ_Y軸 - ラベル」
  • 書式設定でNumberを指定(小数点は好きに)

 

 

 

 

【ActiveReports】ページ単位でグラフを出力

普通にグラフを出力すると1ページ目に全データを集約したグラフが出力され、2ページ目以降はデータ行だけになる。

各ページにグラフを出力したい場合はサブレポートを使用する。

 

サブレポート

  • レポートエクスプローラーからパラメータを右クリックして追加。名前は親レポートで後で指定するのでわかりやすい名前を付けること
  • データセットでフィルタを設定する。絞り込み対象の列に対し前述のパラメータが一致するものを対象にする。(絞り込むだけなのでクエリの編集でもいい)
  • chartコントロールを配置

 

親レポート

  • listコントロールを張り付けて、その上にサブレポートを配置する
  • listのプロパティから「詳細行のグループ化 - 全般」でグラフに出したいグループ単位で式を設定
  • サブレポートのプロパティから「データ - Parameters」を指定、サブレポートで設定したパラメータ名を入力し、渡したいパラメータ(グループ単位で指定した値)を設定

 

空白ページが出力される場合はサブレポートの領域がはみ出している可能性が高い

一時的にサブレポートの背景色を変えると調整しやすい