AdvanceSoftware Tech Blog

アドバンスソフトウェア株式会社の技術ブログ

ExcelCreator12をWebアプリに組み込みMicrosoft Azure App Service(Linux)にデプロイする

ExcelCreator12では、動作保証を行っている環境にクラウドMicrosoft Azure App Serviceが含まれています。
この記事では、Webアプリ(ASP.NET Core Web MVC)をMicrosoft Azure App Service(Linux)にデプロイするまでの流れを解説します。

Microsoft Azure App ServiceでExcelCreatorを使用する際には、ホスティングプランの価格レベルが"Basic"以上に設定されていないと正しく動作しない場合がございますのでご注意ください。

動作環境

実行環境

開発環境

Webアプリの作成

Excelファイルの生成とそのファイルをダウンロードする簡単なWebアプリを作ります。

新規プロジェクト(ASP.NET Core Web MVC)の作成

Visual Studio 2022を起動し、[新しいプロジェクト] > [ASP.NET Core Web アプリ (Model-View-Controller)]の順に選択し、任意のプロジェクト名を入力して[次へ]をクリックします。

[フレームワーク] > [.NET 6.0]を選択して[作成]をクリックします。
その他はデフォルトのまま進めます。

ExcelCreator12のインストール

[ソリューションエクスプローラー]から[依存関係]を右クリック - [Nugetパッケージの管理]からNugetパッケージマネージャーを開きます。

パッケージソースが"nuget.org"になっている事を確認して、参照タブの検索バーから "AdvanceSoftware.ExcelCreator.Creator"と検索します。一覧に表示される同名のパッケージを選択し、[インストール]ボタンをクリックしてパッケージをインストールします。

プログラムの実装

[Controllers] > [HomeController.cs]にExcelファイル生成用のCreateExcelFileメソッドを追加します。

// Controllers/HomeController.cs
[HttpPost]
public IActionResult CreateExcelFile()
{
    System.IO.MemoryStream strmExcel = new System.IO.MemoryStream();
    // ExcelCretor で Excel ファイルを新規作成する処理 
    AdvanceSoftware.ExcelCreator.Creator creator1 = new AdvanceSoftware.ExcelCreator.Creator();
    // シート数:1、Excel バージョン:2021 で Excel ファイルを新規作成し、ストリームに出力します。
    creator1.CreateBook(strmExcel, 1, AdvanceSoftware.ExcelCreator.xlsxVersion.ver2021);
    creator1.Cell("A1").Value = "Microsoft Azure 上で ExcelCreator を使用し Excel ファイルを作成";
    creator1.CloseBook(true);
    strmExcel.Close();
    return File(strmExcel.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Book1.xlsx");
}

次に、[Views] > [Home] > [Index.cshtml]にExcelファイルのダウンロード用ボタンを追加します。

<!-- Views/Home/Index.cshtml -->
@{
    ViewData["Title"] = "Home Page";
}

@using (Html.BeginForm("CreateExcelFile", "Home"))
{
    <p><input type="submit" formmethod="post" value="Excel ファイル作成" /></p>
}
<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

Webアプリはこれで完成です。

なお、ここで作成したサンプルは以下のリンクからダウンロードできます。

https://www.adv.co.jp/download/blog/deploy-excelcreator12-azure-linux/EC12WebSample.zip

デプロイする

Visual StudioからMicrosoft Azure App Service(Linux)にWebアプリをデプロイします。

Microsoft Azure App Service(Linux)にデプロイする

ソリューションエクスプローラーでプロジェクトを右クリックし[発行]をクリックします。

[ターゲット] > [Azure]を選択します。

[特定のターゲット] > [Azure App Service(Linux)]をクリックします。

既にAzureにサインインしているか、Visual StudioアカウントがAzureアカウントとリンクされているかによって表示される画面が異なります。以下の画像のような画面が表示されたら、右上の[サインイン]からAzureアカウントでサインインします。

Azureアカウントでサインイン後、今回はApp Serviceのインスタンスを新規で作成するため、[新規作成]をクリックします。

[名前]、[サブスクリプション]、[リソースグループ]、[ホスティングプラン]に任意の値を設定し、[作成]をクリックします。

ホスティングプランの価格レベルが"Free"や"Shared"に設定されているとMicrosoft Azure側の一部機能が制限され正しく動作しない場合がございますので、"Basic"以上のプランにてご利用ください。

[完了]をクリックします。

発行プロファイルが正常に作成されたことを確認し、[閉じる]をクリックします。

[発行]をクリックし、Microsoft Azure App Service(Linux)にデプロイします。

これでMicrosoft Azure App Serviceにデプロイが完了しました。
[サイトを開く]をクリックします。

以下のような画面が表示された後、[Excelファイル作成]をクリックし、Excelファイルがダウンロードできれば正常に動作しています。

ダウンロードしたExcelファイルでSheet1のA1セルにプログラムから設定した値が反映されていることが確認できます。

さいごに

ExcelCreator12をWebアプリに組み込んでMicrosoft Azure App Service(Linux)にデプロイするまでを解説してきました。
今回は以上です。ありがとうございました。
ExcelCreator12製品ページはこちら
ExcelCreator12体験版はこちら

© 2022 Advance Software Co., Ltd. All Rights Reserved.