使用OleDb(C#)从xlsx检索数据,如何获取xlsx中的行数?
我的最终目标是从.xlsx文件中检索数据并将其加载到.mdb(Microsoft Access)文件中。我的代码现在是这样的:使用OleDb(C#)从xlsx检索数据,如何获取xlsx中的行数?,c#,oledb,xlsx,C#,Oledb,Xlsx,我的最终目标是从.xlsx文件中检索数据并将其加载到.mdb(Microsoft Access)文件中。我的代码现在是这样的: String fileName = "1.xlsx"; OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0
String fileName = "1.xlsx";
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"");
conn.Open();
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string cmdText = "SELECT * FROM [sheet1$A3:B3]";
DataSet ds;
using (OleDbCommand cmd = new OleDbCommand(cmdText))
{
cmd.Connection = conn;
OleDbDataAdapter adpt = new OleDbDataAdapter(cmd);
ds = new DataSet();
adpt.Fill(ds, "sheet1");
}
但这是我知道纸上有多少行的时候。如果我不知道这些信息怎么办?我能知道工作表中有多少行吗?您不需要指定列和行。你只要做一些像这样的事情:
string cmdText = "SELECt * FROM [sheet1$]"
或者如果要限制要读取的列:
string cmdText = "SELECt * FROM [sheet1$A1:B100000]"
编辑:对不起,错过了关于需要知道有多少行的部分。西勒勒有你的答案。换行
string cmdText = "SELECT * FROM [sheet1$A3:B3]";
到
并在代码末尾添加以下行
int numberOfRows = ds.Tables[0].Rows.Count;
int numberOfRows = ds.Tables[0].Rows.Count;