アップロードされたExcelファイルを読み取るための私のコードは次のとおりです。過去3か月間、これはまったく問題なく機能しています。
var connectionString = GetOleDbConnectionString(file);
using (var dataAdapter = new OleDbDataAdapter("select * from [Sheet1$]", connectionString))
{
dataAdapter.Fill(ds, tableCount.ToString());
}
private static string GetOleDbConnectionString(string file)
{
var fileExtension = Path.GetExtension(file);
if (fileExtension.EqualsCCIC(".xlsx"))
{
return @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;".F(file);
}
}
問題:アップロードされた Excel ファイルが最初の列として "StartDate" を取得しました。ただし、この列には従業員名と日付も含まれています (このシートを処理するには、この従業員名を読み取る必要があります)。
1 つの新しい Excel ファイル (Excel2007 .xlsx) に出会いました。新しいファイル (従業員名と日付の両方を含む) をアップロードすると、列から日付のみが読み取られ、従業員名は無視されます。(デバッグ中に) データ テーブル内のセルを空の文字列として表示するデータセット。ビジネス ロジックによると、これらの日付がどの従業員に属しているかを知る必要があります。シート全体のロックを解除しました(セルの書式設定>>保護>>ロック)が、まだ使用されていません。どうすればこの問題を解決できますか? 私は見当もつかない...
古いファイル (2007 .xlsx) を正常に読み取っています