我使用Excel Data Reader在一些數據讀取到實體框架數據庫Excel數據讀取器的問題,列名和
下面的代碼工作表選擇,但我需要一些進一步的改進
首先, IsFirstRowAsColumnNames似乎沒有按預期工作,我不得不使用.Read來代替。
我最初選擇特定工作表時所使用的模式已經是一個糟糕的計劃,任何人都可以幫助使用此excelReader.Name目前是毫無意義的,除非我可以專門循環或選擇一張工作表,我最初使用.Read從而實現衝突。
也可以參考實際的列標題名來檢索數據而不是索引,如var name = reader [「applicationname」] .ToString()在SQL客戶端中;
如果我無法實現上述目標,是否有更好的擴展可以用來讀取excel數據?
public static void DataLoadAliases(WsiContext context)
{
const string filePath = @"Alias Master.xlsx";
var stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
var excelReader = filePath.Contains(".xlsx")
? ExcelReaderFactory.CreateOpenXmlReader(stream)
: ExcelReaderFactory.CreateBinaryReader(stream);
excelReader.IsFirstRowAsColumnNames = true;
excelReader.Read(); //skip first row
while (excelReader.Read())
{
if (excelReader.Name == "Alias Master")
{
var aliasId = excelReader.GetInt16(0);
var aliasName = excelReader.GetString(1);
//Prevent blank lines coming in from excel;
if (String.IsNullOrEmpty(aliasName)) continue;
context.Aliases.Add(new ApplicationAlias
{
AliasId = aliasId,
Name = aliasName,
});
}
else
{
excelReader.NextResult();
}
}
excelReader.Close();
context.SaveChanges();
}
PS。我一直在嘗試使用DataSet,但不確定如何使用這些對我有益的數據。 – Frazer