1

私の要件では、Asp.net OLEDBからExcel(2003と07の両方)データを開いて読み取ることに成功しています。

しかし、それは私たちのPCでExcel Sheetを開いたままにした場合にのみ機能します。そうでない場合は、「外部テーブル形式エラー」が発生します。正確には何が問題ですか?これはアクセス権に問題がありますか?

確かにそれは接続文字列とは何の関係もありません。私のコード

protected void Page_Load(object sender, EventArgs e)
        {
            string path = @"C:\Users\abcd\Desktop\raj.xls";
            connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + absoluteDir + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";

            OleDbConnection oledbConn = new OleDbConnection(connStr);
            try
            {

                oledbConn.Open();
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);
                OleDbDataAdapter oleda = new OleDbDataAdapter();
                oleda.SelectCommand = cmd;
                DataSet ds = new DataSet();
                oleda.Fill(ds);
                GridView1.DataSource = ds.Tables[0].DefaultView;
                GridView1.DataBind();
            }
            catch (Exception err)
            {

            }
            finally
            {
                // Close connection
                oledbConn.Close();
            } 
        }

前もって感謝します

4

1 に答える 1

0

問題はアクセスの問題です。シートがパスワードで保護されていたことを意味します。

于 2012-05-29T11:15:51.740 に答える