web-dev-qa-db-ja.com

Googleスプレッドシートの特定の列をCSVとしてエクスポートするにはどうすればよいですか?

10列のデータを含むGoogleスプレッドシートがあります。列A、C、E、Fをcsvとしてエクスポートしたいと思います。スプレッドシート全体をエクスポートする必要はありません。これはできますか? Googleスクリプトを使用しても構いません。

5
curious

スクリプトでファイルを渡すことはできません(まあ、メールで送ることもできますが、これは行き過ぎだと思います)。 「csvとして保存」メニューコマンドを使用する必要があります。現在のシートのみが保存されるため、これらの列のみを含むシートを作成する必要があります。

簡単な方法は、新しいシートを作成し、セルA1に入力するだけです。

={'My Sheet'!A:A, 'My Sheet'!C:C, 'My Sheet'!E:F}

これを頻繁に行う必要がある場合、すべての場所でシート名を使用してこのすべてを再入力すると、古くなってしまいます。これは、スクリプトが役立つ場所です。以下は、単純に入力することを想定した関数です

My Sheet,A,C,E,F

セルA1に入力し、この入力を数式に変換します。

function csv() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getRange(1, 1).getValue().split(',');
  var formula = [];
  for (i = 1; i < data.length; i++) {
    formula.Push("'" + data[0] + "'!" + data[i] + ':' + data[i]);
  }
  sheet.getRange(1, 1).setFormula('={' + formula.join(',') + '}');
}
8
user79865