問題なくExcelファイルに接続して読み取ることができます。しかし、先頭にゼロがある郵便番号などのデータをインポートする場合、Excel がデータ型を推測し、その過程で先頭のゼロを削除するのを防ぐにはどうすればよいでしょうか?
8 に答える
自動検出ではなくテキストインポートを強制するには、接続文字列にオプションを設定する必要があると思います。
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:\path\to\myfile.xlsx;
Extended Properties=\"Excel 12.0 Xml;IMEX=1\";
マイレージは、インストールしたバージョンによって異なる場合があります。IMEX=1 拡張プロパティは、混合データをテキストとして扱うように Excel に指示します。
接頭辞 '
セルの内容の前に ' を付けると、Excel はそれを数値ではなくテキストとして認識します。' は Excel では表示されません。
文字列の前に「\t」を追加します。文字列が新しいタブに表示されます。
ファイルをタブ区切りのテキスト ファイルとして保存することもうまくいきました。
---古い 残念ながら、ユーザーは定期的にデータを貼り付けているため、Excel ドキュメントの列を特定の形式のままにしておくことはできません。列の特定のデータ型に依存している場合、アプリがクラッシュすることは望ましくありません。
' を前に付けるとうまくいきますが、Excel ドキュメントにデータが既に存在する場合、プログラムでそれを行う合理的な方法はありますか?
これを行う方法は、列が一般ではなくテキストとしてフォーマットされるようにソースExcelファイルをフォーマットすることだと思います。列全体を選択し、右クリックして書式セルを選択し、オプションのリストからテキストを選択します。
列の内容がテキストであり、そのように扱われるべきであることを明示的に定義すると思います。
それがうまくいくかどうか教えてください。
Sqlサーバーから値00022556
を送信'=" 00022556"'
することは、先行ゼロの問題を処理する優れた方法です