GASでスプレッドシート⇒CSV出力する方法

目次
  1. 注文データを特定のCSVの型に変換
  2. 注文元データ
  3. ヤマトが指定しているCSVの型
  4. 注文データ⇒ヤマトの型に変更したデータ
  5. CSV出力
  6. ①スプレッドシートから直接CSV出力
  7. ②GASでCSV出力をする

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

 

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

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

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

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

z0j1aHksjWvmiVFOc7c4avjbIvGr9UXVeT8MbaYj.png

 

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

jhLZmVdLxLDNzA34x0I2wGkU1DQxryVzL626qRCx.png

 

 

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

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

 

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

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

②CSV出力

 

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

 

 

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

 

注文元データ

4B7VyYaRlwINwEuxyNhaFlO0djMmG5KdO5FMJh9H.jpeg

 

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

1JhSjhFYW5X97ID95an1EK4eczxfjvlyrpqnYwoF.jpeg


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

 

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

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

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

 

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

 

 

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

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

6jHGdYJ3T2OGY4eEhyLP95kf192GbII8WS4SqQsa.jpeg

 

 

CSV出力

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

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

②GASでCSV出力をする

 

 

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

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

NSQJfwyMSlP8qfHHqoVSCyPfZeR1RaYYMfQNnytq.jpeg

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

それは文字コードを「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をダウンロードすることができるので、とても簡単です!

SygfcIduYAlRwN9IjShWkWl74f0b74RsldvJDoPP.jpeg

 

 

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

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

 

 

>>ブログまとめに戻る

 

 

 

 

 

この記事を書いた人

岡田 栄次郎 GoogleAppsScript ・AppSheet専門

エンジニア

  • システムエンジニア(SE)
  • ITコンサルタント

全てのシステム開発を一気通貫で対応します

ステータス
現在対応可能
希望時給
5,000円~10,000円
活動エリア
東京都

はじめまして、岡田と申します。 Google Apps Script、Google Workspace、Appsheetを活用したアプリ開発、業務改善ツール開発を専門のフリーランスエンジニアです。 ホームページ https://gas-engineering.jp/ GASやAppsheetについてのブログ一覧 https://freelance-meikan.com/freelance/554/blog/231 【開発のイメージが湧かない方へ】 Googleのサービスを使ったら、どんな感じに開発できるのかイメージが湧かないという方も大歓迎! フワッとしたイメージでも良いので「こんなことをしたい」という内容を伝えて頂ければ、その内容を実現するための方法を具体的に提案させて頂きます。 一度ビデオ会議でお話してみませんか?もちろん無料です。 【Google Apps Script、Appsheetで開発するメリット】 ★月々にかかる費用がタダ! Googleアカウントさえあれば利用可能なので月々にかかる費用が0円です。GASによる開発は、長期的にみて非常にお得です。 ★開発コストが低い Google WorkSpaceを元に開発するので、作業量が少なく済み、その分コストを抑えることができます。 ★他のGoogleサービスとの連携ができるので自由度が高い Google WorkSpace間の連携ができるので、用途に合わせて自由度高くシステムを作ることができます。 GAS、Appsheetの経験が豊富な私に開発をお任せ頂ければ、御社の業務の効率化に貢献することが可能です。是非宜しくお願い致します。 【無料ヒアリング】 ★無料ヒアリング予約フォーム★ https://forms.gle/f7DVaUkwYAMdyMxf7

対応業務
システム開発|スマホアプリ開発|事務代行
スキル
  • 業務改革
  • GCP

関連記事

  • DXの起爆剤!Googleノーコード「AppSheet」とは?

    岡田 栄次郎 GoogleAppsScript ・AppSheet専門

    現在のPV数
    3,163

    こんにちは!GASエンジニアの岡田です。今回は2019年にGoogleがサービスを開始したノーコードツール「AppSheet」についてご紹介します。 ノーコード…

  • 特定の件名のメールを受信すると、チャットに転送

    岡田 栄次郎 GoogleAppsScript ・AppSheet専門

    現在のPV数
    3,503

    こんにちはGASエンジニア岡田です。今回は、特定の件名のメールを受信するとチャットに転送してくれる便利なGASの紹介です! 「問い合わせフォーム」⇒「Gmail…

  • GASエンジニア岡田 ブログまとめ

    岡田 栄次郎 GoogleAppsScript ・AppSheet専門

    現在のPV数
    1,591

    【基本編】「システムを導入するほどでもないものの、工数のかかるアナログな業務」はスプレッドシートでデジタル化しよう!Google Apps ScriptGASっ…