Excel ワークシートのサンプルを作成する
1. Microsoft Excel を起動し、新しいワークシートを作成します。
2. 新しいワークシートに次の情報を追加して、簡単な Excel データベースを作成します。
A B
1 FirstName LastName
2 Scott Bishop
3 Katie Jordan
注 : このサンプルのデータはセル A1 から始まっていますが、セルが連続していればワークシート内の任意の場所に追加できます。
3. データを追加した行と列を選択します。
4. [挿入] メニューの [名前] をポイントし、[定義] をクリックします。
5. [名前] ボックスに myRange1 と入力し、[OK] をクリックします。
6. [ファイル] メニューの [上書き保存] をクリックします。[保存先] ボックスの一覧で Web サーバーのルート (通常は C:\InetPub\Wwwroot\) を選択します。[ファイル名] ボックスに ExcelData.xls と入力し、[OK] をクリックします。
7. [ファイル] メニューの [終了] をクリックします。
Visual C# .NET を使用して ASP.NET のサンプルを作成する
ここで使用するサンプル コードでは、Excel ワークシートに対してクエリを実行し、取得した情報を表示する方法を示しています。以下のコードでは、前の手順で作成したワークシートが使用されます。 1. Microsoft Visual Studio .NET を起動します。Visual Studio .NET 統合開発環境 (IDE) が表示されます。
2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
3. [新しいプロジェクト] ダイアログ ボックスで、[プロジェクトの種類] ボックスの一覧の [Visual C# プロジェクト] をクリックし、[テンプレート] ボックスの一覧の [ASP.NET Web アプリケーション] をクリックします。
4. [新しいプロジェクト] ダイアログ ボックスで、[プロジェクト名] および [場所] ボックスを確認します。[プロジェクト名] ボックスは使用できない状態 (淡色表示) になっています。[場所] ボックスには、以下のテキスト (または類似したテキスト) が表示されます。
http://localhost/WebApplication1
[場所] ボックスのテキストを http://localhost/ExcelCSTest に置き換え、[OK] をクリックします。WebForm1.aspx という名前の Web フォームを含む新しいプロジェクトが作成されます。
5. Visual Studio .NET IDE でソリューション エクスプローラ ウィンドウを探します。見つからない場合は、[表示] メニューの [ソリューション エクスプローラ] をクリックします。
6. ソリューション エクスプローラで [WebForm1.aspx] を右クリックし、[デザイナの表示] をクリックして、ページの外観を示すデザイナを表示します。デザイナでは、コントロールの追加、またはページ デザインの操作を実行できます。
7. ツールボックスを探します。ツールボックスは、IDE オプションの設定に応じてウィンドウまたはボタンとして表示されます (通常、ボタンは IDE の左端に表示されます)。ツールボックスが見つからない場合は、[表示] メニューの [ツールボックス] をクリックします。
ツールボックスがボタンとして表示されている場合は、ポインタをボタンの上に移動してツールボックスの内容を表示します。
8. Web フォームのデザイナ ビューがアクティブになっていると、ツールボックスが複数のセクションに分割され、[Web フォーム]、[コンポーネント]、[HTML] などのセクションが表示されます。[Web フォーム] セクションをクリックします。
9. ツールボックスの [Web フォーム] セクションで [DataGrid] をクリックし、WebForm1 のデザイナ ウィンドウへドラッグします。
10. WebForm1.aspx ファイルを右クリックし、[コードの表示] をクリックして、コード ビハインド ページのソースを表示します。
11. コード ビハインド ページの先頭の名前空間セクションの上に、以下のステートメントを追加します。 using System.Data.OleDb;
using System.Data;
12. 以下のコードを選択して右クリックし、[コピー] をクリックします。このコードを WebForm1.aspx.cs の Page_Load イベントに貼り付けます。 // 接続文字列変数を作成します。使用環境に応じて
// "Data Source" パラメータを変更してください。
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";
// 上記の接続文字列を使用して接続オブジェクトを作成します。
OleDbConnection objConn = new OleDbConnection(sConnectionString);
// データベースとの接続を開きます。
objConn.Open();
// 以下のコードでは、SQL SELECT コマンドを使用してワークシートからデータを表示します。
// ワークシートからデータを返す新規の OleDbCommand を作成します。
OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
// 上記の SQL SELECT ステートメントに基づいて DataSet を作成するのに
// 使用する、新規の OleDbDataAdapter を作成します。
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
// Select コマンドをアダプタに渡します。
objAdapter1.SelectCommand = objCmdSelect;
// ワークシートからの情報を格納する新規の DataSet を作成します。
DataSet objDataset1 = new DataSet();
// DataSet にワークシートからの情報を入力します。
objAdapter1.Fill(objDataset1, "XLData");
// データをデータ グリッド コントロールに連結します。
DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
DataGrid1.DataBind();
// オブジェクトをクリーンアップします。
objConn.Close();
13. [ファイル] メニューの [すべてを保存] をクリックし、プロジェクトの各ファイルを保存します。
14. [ビルド] メニューの [ソリューションのビルド] をクリックし、プロジェクトをビルドします。これにより、コード ビハインド ページのコードを実行できるようになります。
15. コードを実行するには、ソリューション エクスプローラで [WebForm1.aspx] を右クリックし、[ブラウザで表示] をクリックします。
ードについての補足説明
この資料のサンプル コードでは、Microsoft Jet OLE DB プロバイダを使用して Excel ワークシートにアクセスしています。以下の接続文字列を使用してワークシートに接続します。 // 接続文字列のための変数を作成します。使用環境に応じて
// "Data Source" パラメータを変更してください。
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";
コメントに記載されているように、特定の Excel ワークシートを指すようにパス情報を変更する必要があります。また、ファイルに正しく接続するためには、Extended Properties パラメータの値も設定する必要があります。
この接続文字列では、Server.MapPath 関数が使用されていることに注意します。この関数は、ファイルのパスを Microsoft インターネット インフォメーション サービス (IIS) からの相対パスとして受け取り、ハード ディスク上でのファイルのパスを返します。たとえば、「Excel ワークシートのサンプルを作成する」では、Web ルート ディレクトリ (通常は C:\Inetpub\Wwwroot) に ExcelData.xls を作成しています。さらに、Wwwroot フォルダには ExcelCSTest という名前のサブフォルダが作成され、ExcelCSTest フォルダには WebForm1.aspx という名前のファイルが作成されます。
このサンプルでは、ハード ディスク上のファイルへのパスは次のようになります。 C drive
- Inetpub
- Wwwroot (ExcelData.xls を含む)
- ExcelCSTest (WebForm1.aspx を含む)
これらのファイルの IIS パスは次のとおりです。 Web Root (ExcelData.xls を含む)
- ExcelCSTest (WebForm1.aspx を含む)
この場合、WebForm1.aspx ページからの ExcelData.xls ファイルへの相対パスは "../ExcelData.xls" です。"../" という文字列で、1 つ上のフォルダへ移動するように IIS に通知します。 Server.MapPath("../ExcelData.xls")
上記のコードは、次の文字列を返します。
C:\Inetpub\Wwwroot\ExcelData.xls
Server.MapPath は使用しなくてもかまいません。ハードディスク上の Excel ファイルの場所を指定するには、特定のパスへの情報を直接コード内に記述 (ハード コード) するなど、任意の方法を使用できます。