0

次のように、Excelからデータセットにデータをエクスポートする機能があります。

public DataSet GetDataFromExcel(string filePath)
{
    string strConn;
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + filePath + ";" +
    "Extended Properties=Excel 8.0;";
    DataTable dt = new DataTable();
    dt = null;
    using (OleDbConnection oleDB = new OleDbConnection(strConn))
    {
        oleDB.Open();
        dt = oleDB.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        if (dt == null)
            return null;

        ArrayList arr = new ArrayList();
        //ListItemCollection items = new ListItemCollection();
        int i = 0;

        for (int rowIndex = 0; rowIndex < dt.Rows.Count; rowIndex++)
        {
            string excelSheetName;
            string lastCharacter = "";

            excelSheetName = dt.Rows[rowIndex]["TABLE_NAME"].ToString();
            excelSheetName = excelSheetName.Replace("'", "");
            lastCharacter = excelSheetName.Substring(excelSheetName.Length - 1, 1);
            if (lastCharacter == "$")
            {
                arr.Add(dt.Rows[rowIndex]["TABLE_NAME"].ToString());
                //items.Add(dt.Rows[rowIndex]["TABLE_NAME"].ToString());
            }
        }
        //if (items.Count > 1)
        if (arr.Count > 1)
            return null;

        string sName;
        string query;

        //sName = items[0].ToString();
        sName = arr[0].ToString();
        sName = sName.Replace("'", "");
        sName = sName.Replace("$", "");

        query = "";
        query = String.Format("select * from [{0}$]", sName);
        OleDbDataAdapter da = new OleDbDataAdapter(query, strConn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }
}

900行のExcelシートの1つからデータをエクスポートしようとしました。この関数は253行しか取得しません。しかし、私はすべての行が必要です。関数の問題は何ですか?手伝ってくれませんか。ありがとう。

4

1 に答える 1

0

これをダウンロードして、Microsoft.ACE.OLEDB.12.0プロバイダーを使用してください。Jetプロバイダーには厳しい制限があります。

于 2012-07-19T05:10:48.950 に答える