Googleドライブのcsvをスプシに取り込む part1

Excel スプレッドシート

Googleドライブにcsvを格納したあとにスプレッドシートに取り込むことができれば
後は関数を使って集計関係が進みます!

フォルダの配置について

Googleドライブにフォルダを作成しましょう。
今回はこんな感じにしました。

スポンサーリンク

フォルダIDを取得しよう

取得方法

Googleドライブで実際にフォルダを開いてアドレスを確認します。
下記の赤枠部分がフォルダのIDになります。

同様に取り込んだ後のファイルを格納するフォルダのIDも取得しておく

GASのフォルダの記載方法について

GASにコードを記載する際にフォルダは下記のように表現します。

const importfolder = DriveApp.getFolderById(‘フォルダID’);

これでフォルダ内のファイルを調べれるようになります。
取込後格納するフォルダのIDも取得しておきましょう

取込処理について

スプレッドシートの変数を宣言します。

const spradsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spradsheet.getSheetByName(‘シート1’);//貼り付けるシート名を記載する

フォルダ内のファイル分繰り返しをする処理はこのように記述します。

const readfiles = importfolder.getFiles();
while (readfiles.hasNext())


}

ファイルが有れば下記の処理を記載して取込を行います。

const file = readfiles.next();
const filename = file.getName();
const url = file.getUrl();
const fileid = file.getId();
console.log(file.getName());
const blob = DriveApp.getFileById(fileid).getBlob();
const csv = blob.getDataAsString(‘Shift-JIS’);
const values = Utilities.parseCsv(csv);
sheet.getRange(1,1,values.length,values[0].length).setValues(values);//csvを貼り付け

ここまででの処理を組み合わせるとファイルを取り込む処理を作成することができます。

取り込み済みのファイルの処理について

ファイルが有れば下記の処理を記載して取込を行います。

file.moveTo(archivefolder);//ファイルを格納

まとめ

各処理のコードを一つにするとこんな感じです。
フォルダIDや貼り付けるシート名を変更すればそのまま使えると思います!!


function ImportCsvProcess()
{
const importfolder = DriveApp.getFolderById(‘1JYskMFKkqbXmu9fC7XRKWJ3k7pm6HpH5’); //取り込むフォルダのIDに変更する
const archivefolder = DriveApp.getFolderById(’18m1hDFGZJpbWj-IeOEA_AbtVxuYcYACP’);//取り込み済みの格納先IDに変更する
const spradsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spradsheet.getSheetByName(‘シート1’);//貼り付けるシート名を記載する
const readfiles = importfolder.getFiles();
while (readfiles.hasNext())//ファイル分繰り返し
{
const file = readfiles.next();
const filename = file.getName();
const url = file.getUrl();
const fileid = file.getId();
console.log(file.getName());
const blob = DriveApp.getFileById(fileid).getBlob();
const csv = blob.getDataAsString(‘Shift-JIS’);
const values = Utilities.parseCsv(csv);
sheet.getRange(1,1,values.length,values[0].length).setValues(values);//csvを貼り付け
file.moveTo(archivefolder);//ファイルを格納
}
}

このままcsvを格納後にGASを起動すれば使うこともできますが
スプレッドシート側に変数を置いて取り込みたいファイル名やシート位置を変数にしたりもできます。

次回はスプレッドシート側の設定を行ってみたいと思います。
また、トリガーを設定することで一定間隔で処理を行うことができるので
その辺りも紹介したいと思います!

コメント

タイトルとURLをコピーしました