AdvanceSoftware Tech Blog

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

ExcelCreator11をWebアプリに組み込みMicrosoft Azureにデプロイする

弊社製品のExcelCreator 11.0 for .NETは動作保証を行っている環境の中にクラウドMicrosoft Azure「App Service」や「Virtual Machines」が含まれています。

本記事ではWebアプリ(ASP.NET Core Web MVC)をMicrosoft Azure App Serviceにデプロイするまでの流れを解説します。

この記事通りに進めていけばWebアプリの動作が確認できます。

環境

実行環境

開発環境

Webアプリを作る

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

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

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

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

ExcelCreatorのインストール

NuGetでExcelCreatorのパッケージをインストールします。

ソリューションエクスプローラーの[依存関係]を右クリックし、[NuGet パッケージの管理]を選択。
[参照]タブから「AdvanceSoftware.ExcelCreator.Creator」で検索します。

一覧にはパッケージが2つ表示されると思いますが、「AdvanceSoftware.ExcelCreator.Creator」をインストールしてください。

ソースコードの修正

ExcelCreatorで作成したExcelファイルを格納するため、「wwwroot」フォルダの直下に「download」フォルダを追加してください。

HomeController.Indexメソッド内でExcelファイルを生成します。

// Controllers/HomeController.cs
using EC11WebSample.Models;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using AdvanceSoftware.ExcelCreator;  // 名前空間を追記

namespace EC11WebSample.Controllers
{
    public class HomeController : Controller
    {
        private readonly IWebHostEnvironment env;

        // Webのルートパスを取得するための修正
        public HomeController(IWebHostEnvironment env)
        {
            this.env = env;
        }

        public IActionResult Index()
        {
            // ExcelCretorでExcelファイルを新規作成する処理 
            var creator = new Creator();
            var path = Path.Combine(
                env.WebRootPath,
                @"download\Book1.xlsx"
            );
            // wwwroot/download/Book1.xlsxにExcelファイルを作成
            creator.CreateBook(path, 1, xlsxVersion.ver2019);
            creator.Cell("A1").Value = "Microsoft Azure 上で ExcelCreator を使用し Excel ファイルを作成";
            creator.CloseBook(true);

            return View();
        }
        // 以降、関係ない箇所は省略~
    }
}

ホーム画面にダウンロード用のリンクを追加します。

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

<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>
    <!-- リンクを追加 -->
    <a href="@Url.Content("~/download/Book1.xlsx")" download>Excelファイルダウンロード</a>
</div>

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

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

https://www.adv.co.jp/download/blog/deploy-excelcreator11-azure/EC11WebSample.zip

デプロイする

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

Microsoft Azure App Serviceにデプロイする

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

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

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

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

Azureアカウントでサインイン後、[App Service インスタンス]横の[+]をクリックします。

[名前]、[サブスクリプション]、[リソース グループ]、[ホスティング プラン]に任意の内容を設定し[作成]をクリックします。 ホスティングプランの価格レベルが"Free"や"Shared"に設定されているとMicrosoft Azure側の一部機能が制限され正しく動作しない場合がございますので、"Basic"以上のプランにてご利用ください。

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

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

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

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

以下の画像のような画面が表示され、[Excelファイルダウンロード]をクリックしExcelファイルがダウンロードできれば正常に動作しています。また、Sheet1のA1セルにソースコードから設定した値が反映されていることも確認できます。


さいごに

ExcelCreatorをWebアプリに組み込んでMicrosoft Azure App Serviceにデプロイするまでを解説してきました。

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

今回は以上です。ありがとうございました。

参考

クイックスタート: ASP.NET Web アプリをデプロイする - Azure App Service | Microsoft Docs

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