バックグラウンド:
Asp.Net (C#) Web アプリケーションのデータ交換形式に CSV を使用しました。通常、リクエストの一括アップロードを行うために使用されるファイル。それは今までうまく機能し、まだ機能しています。
ただし、文化を調査しているときに、csv ファイルに多くの問題があることがわかりました。最大の問題の 1 つは、セパレーターが地域設定によって決定されていることです。ユーザーが Ms Excel でファイルを編集しているときに発生します。たとえば、デリミタは米国ではコンマで、ヨーロッパの一部の地域ではセミコロンです。
しばらく検索しましたが、そのようなケースを処理する特効薬は見つかりませんでした。今、私は疑問に思っています:
CSV ファイルで区切り記号の定義を処理する良い方法はありますか?
仕様を備えた不変の文化であるより良いデータ交換形式はありますか:
- ファイルはプレーンテキストです (ms Excel xlsx のようなエンコードされたファイルではありません)。
- 不変の文化です。小数点記号を処理するつもりはありませんが、少なくとも区切り記号で不変です
- Ms Excel などのスプレッドシート アプリケーションでサポートされています。
- (オプション) OleDb エンジンで読み取ることができます
または、フラット ファイルを使用して表形式のデータ交換を行う良い方法はありますか?
アップデート:
これまでのところ、与えられたソリューションの長所と短所の要約を次に示します。
CSV (一般に、区切られたフラット ファイルを表すためにも使用されます):
長所:
- ExcelやOleDbなど多くのプロセッサに対応
- 読みやすい
- メモ帳で簡単操作
短所:
- ms Excel で編集するときに区切り記号の問題がある
- 区切り文字をエスケープまたは処理する必要がある
XML:
長所:
- Excel や xml シリアライザなど、多くのプロセッサでサポートされています
- メモ帳で簡単操作
- 構造形式を表す
短所:
- Excelで処理する場合は追加の処理が必要
- タグを使用すると、xml 内のコンテンツが増えます
ジョンソン:
長所:
- 構造形式を表す
- メモ帳で簡単操作
短所:
- Excel などのスプレッドシート プロセッサではネイティブにサポートされていません (確認する必要があります)。