EXcelインポートエラー:外部テーブルが予想されるフォーマットソリューションではありません
2318 ワード
環境:win 7+iis 7+Office 2007
asp.NetサイトでExcelファイルをエクスポートし、データベースにファイルをインポートします.Excelファイルの読み込み中に接続を開くエラーが発生しました.
エラー:外部テーブルが予期しないフォーマット
解决:チェックしたところ、エクスポートされたExcelは標準ファイルでhtmlではなく、間違いなく、Excelファイルは正常です.
コードをデバッグし、接続オブジェクトoleDbConnectionを作成するのも正常ですが、conn.Open()でリンクを開くときにエラーが発生しました.
リンク文字列をよく見て、エラーが検出されました.Excelバージョンの問題で、Exce接続文字列バージョンはoffice 2003で、Excel 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();
}