我有一個Excel文檔,一列是文本類型。一些單元格包含字母和數字的組合,而其他單元格僅包含數字。我發現如果單元格值只包含數字,讀取器會將單元格中的值解釋爲長整數,並將其截斷。因此,而不是讓「120500923」,等我回來「1.20501e + 008」 這裏是我的代碼:使用OleDBDataReader從Excel電子表格中讀取字符串
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="myfile.xls";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"");
OleDbCommand myCommand = new OleDbCommand("Select * from [Sheet1];");
myConnection.Open();
myCommand.Connection = myConnection;
OleDbDataReader myReader = myCommand.ExecuteReader();
string[] myLine = new string[5];
while (myReader.Read())
{
for (int i = 0; i < 5; i++) //read the first 5 columns
{
myLine[i] = (string)myReader[i].ToString();
}
}
我怎樣才能指導讀者對待所有單元格值作爲字符串而不是數字?我不想修改excel電子表格,因爲它是由人員編輯的,我希望保持簡單。
感謝, 尼克