我具有類似於excel工作表:如何讀取數據的列標題並在Excel中每個小區的數據使用C#
欲讀取數據的列報頭:全部,COL1,COL2,COL3 ,COL4,COL5
,並獲得在data.for行= 2的示例小區和列中的所有小區2 = 0
我目前寫這樣的代碼:
OleDbDataAdapter dbAdapter = new OleDbDataAdapter("SELECT top 5 * FROM " + excelSheets[j], connString);
DataTable fooData = new DataTable();
dbAdapter.Fill(fooData);
foreach (DataRow row in fooData.Rows)
{
Response.Write(row[0].ToString());
//Response.Write(row[1].ToString());
}
但它返回的只是一個數據表,其中只有一列,而且只是第1行到第5行的文本。
我該怎麼做?
請說出答案,而不使用Linq to Excel Provider和Open Xml。
編輯1:
string file_name = "C:\\Book1.xlsx";
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_name + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";
objConn = new OleDbConnection(connString);
objConn.Open();
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
Response.Write("Not Exist");
}
String[] excelSheets = new String[dt.Rows.Count];
int i = 0;
foreach (DataRow row in dt.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}
// Loop through all of the sheets if you want too...
for (int j = 0; j < excelSheets.Length; j++)
{
OleDbDataAdapter dbAdapter = new OleDbDataAdapter("SELECT top 100 * FROM " + excelSheets[j], connString);
DataTable fooData = new DataTable();
dbAdapter.Fill(fooData);
foreach (DataRow row in fooData.Rows)
{
Response.Write(row[0].ToString());
}
}
當您使用「SELECT * FROM」,而不是發生了什麼? – Yahia
它返回超過100000行 – Arian
我知道 - 但是你有沒有列標題? – Yahia