httpダウンロードで取得したcsv文字列(utf-8)があります。
状況に応じて、文字列内のデータには異なる数の列が含まれる可能性がありますが、文字列が処理されるたびに、同じ数の列が含まれ、連続します。(データは均一になります)。
文字列には任意の数の行を含めることができます。
最初の行は常に見出しになります。
文字列フィールドは二重引用符で囲まれ、コンマ、引用符、改行を含めることができます。
文字列内の引用符と二重引用符は、「」と「」を2倍にすることでエスケープされます。
言い換えれば、これは整形式のcsv形式です。標準のファイルオープンメカニズムによるExcelは、このデータのフォーマットに問題はありません。
ただし、場合によっては出力を処理したり、ワークシート上の既存のデータとマージしたりする必要があるため、ファイルに保存してからcsvを開くことは避けたいと思います。
(編集により次の情報を追加しました) Excelアプリケーションはさまざまな宛先に配布され、潜在的なアクセス許可の問題が発生する可能性がある場合は避けたいと思います。ディスクに何も書き込まないのが良い方法のようです。
私は次のような疑似を考えています:
rows = split(csvString, vbCrLf) 'wont work due to newlines inside string fields?
FOREACH rows as row
fields = split(row, ',') 'wont work due to commas in string fields?
ENDFOR
明らかに、それは特別なトークンを含むフィールドを処理できません。
このデータを解析する確実な方法は何ですか?
ありがとう
2012年10月13日データサンプルの編集
メモ帳に表示されるcsv(すべての改行が\ r \nになるわけではないことに注意してください\n一部は\nになる可能性があります)
LanguageID,AssetID,String,TypeID,Gender
3,50820,"A string of natural language",3,0
3,50819,"Complex text, with comma, "", '' and new line
all being valid",3,0
3,50818,"Some more language",3,0
Excel 2010の同じcsv-シェルから開きます(ダブルクリック-追加オプションなし)