gpt4 book ai didi

c# - 如何使用c#在Excel中读取数据列标题和每个单元格的数据

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:11 25 4
gpt4 key购买 nike

我有一个类似于 excel 的表格:

excel screenshot

我想读取数据列标题:All,col1,col2,col3,col4,col5

并获取所有单元格数据。例如行 = 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 列和第 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());
}

}

最佳答案

您可以通过 fooData.Columns[0].ColumnName 获得第一列的列名- 参见 http://msdn.microsoft.com/en-us/library/system.data.datacolumn.columnname.aspx

编辑:

更改 SELECTSELECT * FROM并使用 Fill (0, 5, new DataTable[] { fooData }) .

关于c# - 如何使用c#在Excel中读取数据列标题和每个单元格的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7164508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com