ASP.NETではExcelの内容を読み取り、Web上に表示
1480 ワード
この例ではASPについて述べる.NETは、Excelのコンテンツを読み取り、Web上に表示する方法を実現し、非常に実用的な機能です.具体的な実現方法は以下の通りである.
イベントコードをクリックします.csコードは以下の通りです.
注意:
クラシックな「Provider=Microsoft.Jet.OLEDB.4.0;Data Source='」+strPath+';Extended Properties=Excel 8.0」を使用すると、外部テーブルが予想されるフォーマットではないとエラーが表示されます.
これはMicrosoftのためです.Jet.OLEDB.4.0はMicrosoftJetエンジンで、2003バージョン(2003以前はテストしていないので、どのバージョンに下向きに適応できるか分からない)に適しているが、2007年にはマイクロソフトが傘下のAccessとExcelの主要ファイルフォーマットを変更し、名前を変更した.accdb(Access 2007データベースファイル)と.xlsx(Excel 2007ファイル)は、Microsoft Jetエンジンにはサポートされていないが、マイクロソフトもすぐにMicrosoft Office 2007 Desktop Drivers:Data Connectivity Componentsをサポートすることを提案した.
したがって、解決策は、接続文字列中のデータプロバイダをMicrosoftに変更することである.ACE.OLEDB.12.0でいいです.
イベントコードをクリックします.csコードは以下の通りです.
protected void Button1_Click(object sender, EventArgs e)
{
string strPath = "d:/test.xls";
string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = '" + strPath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
//"Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + strPath + "';Extended Properties=Excel 8.0";
OleDbConnection cnnxls = new OleDbConnection(mystring);
OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [Sheet1$]", cnnxls);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
DataGrid1.DataSource = myDs.Tables[0];
DataGrid1.DataBind();
}
注意:
クラシックな「Provider=Microsoft.Jet.OLEDB.4.0;Data Source='」+strPath+';Extended Properties=Excel 8.0」を使用すると、外部テーブルが予想されるフォーマットではないとエラーが表示されます.
これはMicrosoftのためです.Jet.OLEDB.4.0はMicrosoftJetエンジンで、2003バージョン(2003以前はテストしていないので、どのバージョンに下向きに適応できるか分からない)に適しているが、2007年にはマイクロソフトが傘下のAccessとExcelの主要ファイルフォーマットを変更し、名前を変更した.accdb(Access 2007データベースファイル)と.xlsx(Excel 2007ファイル)は、Microsoft Jetエンジンにはサポートされていないが、マイクロソフトもすぐにMicrosoft Office 2007 Desktop Drivers:Data Connectivity Componentsをサポートすることを提案した.
したがって、解決策は、接続文字列中のデータプロバイダをMicrosoftに変更することである.ACE.OLEDB.12.0でいいです.