Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OleDb(C#)从xlsx检索数据,如何获取xlsx中的行数?_C#_Oledb_Xlsx - Fatal编程技术网

使用OleDb(C#)从xlsx检索数据,如何获取xlsx中的行数?

使用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

我的最终目标是从.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;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;