2016-06-28 5 views
0

を使用してMVC C#で異なるデータ形式を持っている場合、私はLINQ文を使用してMVCウェブサイトを通じてExcelシートをインポートしていますエクセルのインポート:データが読み取られていない列がLINQ

var members = (from memRec in excelFile.Worksheet(sheetName) 
       where memRec["FIRST_NAME"] != null 
       select memRec).ToList(); 
foreach (var member in members) 
{ 
//save data 
} 

以下のような問題ここには聞かせていると言います特定の列「Date Of Birth」の最初の2列のセル形式は"DATE" and display as dd/MM/yyyyで、3列目のセル形式は"Text" and display as dd/MM/yyyyです。形式が一致していないため、3列目の値として考慮されません。

これを解決する方法はありますか?

答えて

0

のように、オブジェクトを宣言し、定義済みのデータ型を使用してみてください。私は解決策を見つけた

var q = from memRec in excelFile.Worksheet(sheetName) 
     where memRec["FIRST_NAME"] != null 
     select new Person() 
     { 
      Date = (DateTime)memRec [“Date”], 
      FirstName= (string)memRec [“FirstName”], 
      Age= (int)memRec [“Age”], 
     }; 
+0

に値を変更するので今Excelは習慣行データ型を推測? – Sachu

+0

なぜですか?私はそれが通常のlinqのように動作するはずです... –

0

は、当社のサーバーでは、 にレジストリエディタを表示するには、[スタート]►ファイル名を指定して実行し、regeditと入力を選択し、オフィス2010

変更Windows環境で

  1. 以下のようにレジストリエントリです。
  2. レジストリツリーで、HKEY_LOCAL_MACHINE►ソフトウェア►Microsoft► Office►12.0►アクセスエンジン►エンジンを選択します。
  3. Excelノードをダブルクリックします。
  4. 右側のパネルで、TypeGuessRowsエントリをダブルクリックします。
  5. 値のデータを8から0に変更します。
  6. OKをクリックします。
  7. ファイル►終了を選択して、レジストリエディタウィンドウを終了します。

我々はそれがQにシートからすべての行をインポートします8から0

関連する問題