ASP.NET、C#、MVC 3、Code First プロジェクト
Excel スプレッドシートからデータをインポートしようとしています。すべてのセルをテキストとしてフォーマットしました。
インポート ワークシートのサンプル行は次のとおりです。
Account Card ThreeCode Route
04562954830287127 32849321890233127 183 154839254
04562954830287128 32849321890233128 233
04562954830287129 32849321890233129 082
04562954830287130 32849321890233130 428
デバッグで実行し、ds DataSet にドリルダウンすると、Account 列と Card 列が文字列としてインポートされ、3-Digit 列と Route 列が double としてインポートされます。問題は、データ行 3 の 0 (082) で始まる 3 桁の数字で発生します。これは System.DBNull としてインポートされ、空になります。先頭にゼロが付いた 3 桁のコードをインポートできるようにする必要があります。インポートを強制的にすべての文字列にする方法、またはこの問題に対処する別の方法はありますか? ウェブで検索しましたが、解決策が見つかりませんでした。これはブラウザから実行されるため、ローカル マシン上のレジストリ、dll、または ini ファイルを操作することはできません。インポートコードは以下です。よろしくお願いします。
public ActionResult ExcelToDS(string Path = "C;\File.xls")
{
string strConn = "Provider= Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + "; " + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open(); string strExcel = "";
OleDbDataAdapter myCommand = null;
DataTable dt = new DataTable();
strExcel = "select * from [Import$]";
DataSet ds = null;
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet(); myCommand.Fill(ds, "table1");