こんにちはGASエンジニアの岡田です。

 

複数のシステムを使って仕事していると、別々のシステムを繋げるために

片方のシステムのCSVをダウンロードして、もう片方のシステムにそのCSVをアップロードする

その際に、二つのシステムのCSVの型が異なるから、わざわざデータ変換の手作業が発生する、、、

という場面が多々発生します。

 

今回はGASを使うと、ダウンロードしたCSVを自動でアップロード用のCSVに変換してくれる便利システムを作れることをご紹介します。

 

 

以前依頼があったEC販売をしている事業者さんを例にして解説していきます。

「ECショップをしていて、ヤマト運輸で商品を発送している。送り状を一括で作成するためにヤマト運輸のシステムにCSVをアップロードしている。毎回注文データを送り状用CSVの型に変更するのが面倒」

 

システムの流れは以下です。

①注文データ⇒ヤマトの送り状用CSVの型に変換

②CSV出力

 

スプレッドシートから出力するCSVには落とし穴がありますので、最後までご覧ください。

 

 

注文データを特定のCSVの型に変換

 

注文元データ

 

ヤマトが指定しているCSVの型


この注文データをヤマト指定の型に変換してあげる必要があります。

 

そんな時に使うのがスプレッドシートの「QUERY関数」です。

QUERY関数とは、特定のデータ群から指定した条件でデータを抽出する関数です。

列を自由に並び替えたりもできるので、非常に便利な関数なのです。

 

これはエクセル関数には存在しない、スプレッドシート独自の関数で、GAS開発をする際には必ず使用するくらい優れものです。

 

 

注文データ⇒ヤマトの型に変更したデータ

Query関数を使ってあげると、このように注文データがヤマトの型に変更してあげることができました。

 

 

CSV出力

スプレッドシートをCSV出力する方法は2つあります。

①スプレッドシートから直接「ファイル」⇒「ダウンロード」⇒「CSV」で出力をする

②GASでCSV出力をする

 

 

①スプレッドシートから直接CSV出力

スプレッドシートから直接CSVを出力することは可能です。

ただしここには大きな落とし穴があります。

それは文字コードを「Shif-JS」変換できないことです。

 

CSVの文字コードは2つの種類があります。※厳密には2つでないですが、この2つさえ知っていればOKです

それは

スプレッドシートは「UTF-8」に対応しエクセルは「Shift-JS」に対応するです。

つまりスプレッドシートにShift-JSを使うと文字化けをし、エクセルにUTF-8を使うと同じく文字化けをしてしまいます。

 

今回ヤマトのシステムはShif-JS対応なので、直接スプレッドシートからCSVをダウンロードしたものは使えず、スプレッドシートからCSV出力をする際に、Shift-JSに変換してあげる必要があります。

※コピペ手作業でShift-JSに変換することは可能ですが、これは面倒です。

 

そこでGASの出番となるのです。

 

 

②GASでCSV出力をする

GASを使うとUTF-8をShift-JSに変換して出力することが可能です。

出力方法はとても簡単で、オレンジ色の「CSV出力」ボタンを押すだけでGASが実行し、変換したCSVをダウンロードすることができるので、とても簡単です!

 

 

以上がスプレッドシートからCSV出力をする方法の解説でした!

ご覧頂きありがとうございました。

 

 

>>ブログまとめに戻る