function readOnly(count){ }
Don't have an account?
Search for an answer or ask a question of the zone or Customer Support.
You need to sign in to do that
Sign in to start searching questions
Signup for a Developer Edition
Sign in to start a discussion
お世話になります。
Visualforceページにてローカルにあるcsvファイルを選択・アップロードし、
ファイル内の値をデータベースに書き込むという処理を実装したいのですが。
ローカルのファイルをアップロードし
Salesforce上で処理するということは可能なのでしょうか?
<apex:inputFile>でローカルのCSVをコントローラーに渡すことが可能なので、
Apex側でガリガリと1行単位やカラムで分割していけばオブジェクトに登録することができます。
ただ、ガバナー等の制限があるので結構キツイです。
注意点を以下にあげておきます
・行、列の区切りを判断するのが難しい
⇒改行やカンマがあった場合、それが区切り文字なのか、文字として使われているものなのか?
・SalesforceのDBに登録する場合はUTF8にコード変換が必要だが、Apex側でコード変換の機能が提供されていない
区切り文字に関しては極端な話し1文字ずつ処理していけば判断可能なのですが、実行可能なスクリプト総数のガバナー
があるので、それもままなりません。
対策⇒CSVファイルとして「この文字は使わない」「行端はこの文字にする」等の制限をつける
また文字コードに関してはやむを得ず、投入前に必ずCSVをUTF8にコード変換することで対応しました。
出来る限りデータローダを利用することをお勧めします:smileyindifferent:
USのDeveloperforceにCSV Parseのサンプルがあるのでご参考まで。
詳細は見ていないのでイケてるかわかりませんが。。。
http://wiki.developerforce.com/index.php/Code_Samples#Parse_a_CSV_with_APEX
返信ありがとうございます。
参考にさせていただきます。
<apex:inputFile>でローカルのCSVをコントローラーに渡すことが可能なので、
Apex側でガリガリと1行単位やカラムで分割していけばオブジェクトに登録することができます。
ただ、ガバナー等の制限があるので結構キツイです。
注意点を以下にあげておきます
・行、列の区切りを判断するのが難しい
⇒改行やカンマがあった場合、それが区切り文字なのか、文字として使われているものなのか?
・SalesforceのDBに登録する場合はUTF8にコード変換が必要だが、Apex側でコード変換の機能が提供されていない
区切り文字に関しては極端な話し1文字ずつ処理していけば判断可能なのですが、実行可能なスクリプト総数のガバナー
があるので、それもままなりません。
対策⇒CSVファイルとして「この文字は使わない」「行端はこの文字にする」等の制限をつける
また文字コードに関してはやむを得ず、投入前に必ずCSVをUTF8にコード変換することで対応しました。
出来る限りデータローダを利用することをお勧めします:smileyindifferent:
USのDeveloperforceにCSV Parseのサンプルがあるのでご参考まで。
詳細は見ていないのでイケてるかわかりませんが。。。
http://wiki.developerforce.com/index.php/Code_Samples#Parse_a_CSV_with_APEX
返信ありがとうございます。
参考にさせていただきます。