EXcelインポートエラー:外部テーブルが予想されるフォーマットソリューションではありません

2318 ワード

環境:win 7+iis 7+Office 2007
asp.NetサイトでExcelファイルをエクスポートし、データベースにファイルをインポートします.Excelファイルの読み込み中に接続を開くエラーが発生しました.
エラー:外部テーブルが予期しないフォーマット
解决:チェックしたところ、エクスポートされたExcelは標準ファイルでhtmlではなく、間違いなく、Excelファイルは正常です. 
コードをデバッグし、接続オブジェクトoleDbConnectionを作成するのも正常ですが、conn.Open()でリンクを開くときにエラーが発生しました. 
リンク文字列をよく見て、エラーが検出されました.Excelバージョンの問題で、Exce接続文字列バージョンはoffice 2003で、Excel 2007バージョンに変更すると正常にインポートされます. 
要約ルールは次のとおりです.
using System.Data.OleDb;
using System.Data;

 public void ReadExcelFiless()
        {
            //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Server.MapPath("ExcelFiles/MyExcelFile.xls") + ";Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'"; //       Excel2007  (.xls)  
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Server.MapPath("ExcelFiles/Mydata2007.xlsx") + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //       .xls .xlsx   (  Excel2003   Excel2007       )
//  : "HDR=yes;"  Excel              ,"HDR=No;"        。
// "IMEX=1 " , "IMEX=1" 。
OleDbConnection conn = new OleDbConnection(strConn); OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn); DataSet ds = new DataSet(); adp.Fill(ds, "Book1"); this.GridView1.DataSource = ds.Tables["Book1"].DefaultView; this.GridView1.DataBind(); }