dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]ApexでCSVファイルをアップロードする

この記事を参考に。

SFDCで大容量CSVアップロード作ってみました。 - SHANON Engineer's Blog

ほぼほぼこの通りでいいのですが、

  • parser でやろうとしている処理が parser という名前と一致しない
  • " (ダブルクォート)で囲った値があった時に対応できない
  • 表記崩れや変数の宣言忘れなどがあり、そのままでは動かない

といった問題があったため、自分なりに書き直したものをここに載せておく。

コード

やりかけだけど動くものをこちらに。

同じものを GitHub にも置いてます。

https://github.com/zaki-yama/force-com/tree/feature/batch-csv-upload/batch-csv-upload

TODO

  • " (ダブルクォート)で囲った値があった時に対応できない

これがまだ対応できていない。

CSV のパースについては上で紹介した記事からも参考 URL として貼られているこちらの記事(英語)が参考になりそう。

Importing CSV files via Apex – Developer | FinancialForce

ここからさらに別の英語記事が紹介されていて、パーサのサンプルコードがダウンロードできる。

From Belvidere's 4th Floor: IETF RFC 4180-compliant CSV Reader for Salesforce

CSV の仕様って RFC4180 で定義されてるのね。