我必須在Web應用程序中使用OleDB讀取Excel文件並將數據保存到數據庫中。用OleDB讀取Excel文件返回錯誤格式的UPC編號
訪問該文件並使用DataAdapter或OleDbDataReader讀取它的工作原理。我需要指定IMEX = 1和TypeGuessRows = 0,因爲文件中的數據有我需要解析的標題,但它們不在第一行。所以基本上,我需要讀取這些行,直到我找到一個已知的標題,然後開始解析其後的所有數據。
在第一列中有像這樣的價值觀UPC號碼:5053366261702
但是,即使在字段讀文本,該OleDbDataReader在這樣一個科學的方法返回的數字:5.05337E+12
如果我不」以文本形式讀取行,數字將正確返回,但標題將消失。
我添加了代碼的重要部分。預先感謝您的幫助。
string conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties='Excel 12.0;HDR=No;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0'";
using (OleDbConnection objConn = new OleDbConnection(conn))
{
objConn.Open();
var exceltables = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
var tablename = exceltables.Rows[0]["TABLE_NAME"];
using (OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [" + tablename + "]", objConn))
{
using (OleDbDataReader reader = objCmdSelect.ExecuteReader())
{
while (reader.Read())
{
string abc = reader[0].ToString(); //do some parsing
}
}
}
}