見出し画像

スプレッドシートを会計ソフトに取り込めるようにCSVで出力する【GAS】【Googleスプレッドシート】【freee】【弥生会計】【経理】

freee会計に特化しているわけではありません。

会計ソフト、人事労務ソフトや、いろいろな専用ソフトについて、APIで更新できたらいいですが一度CSVに落としてからシステムをつなぐためにスプレッドシートを経由したり、スプレッドシートで一部更新を保管したりするケースの業務効率化です。

スプレッドシートの準備

画像のような伝票データの作成が定型としましょう。
freee会計にCSVで伝票データを取り込む場合、項目設定は柔軟に対応できるようですので、そのあたりの設定は個別化してください。
1行16列のレコードで設定しています。

注意するのは、日付データ

日付データ、今表示形式の設定で、「2022/4/28 」と表示されているのですが、実際は「Thu Apr 28 2022 00:00:00 GMT+0900 (Japan Standard Time)」という情報を持っています。
この情報をfreee会計に取り込むと、このような日付になり(2022/4/28のような形式が必要)エラーになってしまいます。

GAS内で変換する方法もありますが、スプレッドシートからGASをつかってCSV化する一番単純な方法だと思うものを、ご案内します。

フォームの改定

1列足して、17列のフォーマットとしました。
A列で日付入力をおこない、B列は計算式が入っています。

B列の計算式 =year(A2)&"/"&month(A2)&"/"&day(A2)

B列に入っている計算式です。見た目はどちらも同じ 2022/4/28 となっていますが、A列は日付データ、B列はあくまで文字列という違いがあり、B列の形式であれば、freee会計が日付データとしての認識をしてくれます。

手順:出力先フォルダの準備

グーグルドライブ内に出力したいフォルダを作成します。
フォルダIDが必要ですので、その番号を控えてください
こちらのケースでは、「1KLBrAd9DDgxYrBXgxxdXcS5Zu1Vcvi3-」がフォルダIDです

スクリプト

function makecsv3(){

  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var csv_sheet = SS.getSheetByName("data");
  var fileName = "freee.txt";

 var data=  csv_sheet.getRange(1,2,6,16).getValues(); 

 var csv = data.join('\n');

  var folderId = '1KLBrAd9DDgxYrBXgxxdXcS5Zu1Vcvi3-';

  var contentType = 'text/csv';
  
  var charset = 'UTF-8';

  var folder = DriveApp.getFolderById(folderId);

  var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset);

  folder.createFile(blob);

}

これを実行すると、

会計ソフトに取り込みえる形の「freee.txt」というファイルが出来上がりますので、これを取り込みたいソフトに取り込んでください。

まとめ

まずはするっとCSV化の方法でした。

今回のデータです。
https://drive.google.com/drive/u/0/folders/1KLBrAd9DDgxYrBXgxxdXcS5Zu1Vcvi3-




どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。