Excelのエクスポートを含む炎のサーバーとシンプルな暗号通貨アプリ


いくつかの理由で、私は開発のラピッドとシンプルさのためブレーズサーバーで開発を始めた.私は開発をスピードアップするためにいくつかの無料コンポーネントライブラリを使用する傾向があります.私はまだBlazorサーバーのすべての私の経験は、チュートリアル/実験レベルのみです言及したい.
これは単なるBlazorサーバーを学ぶためのアプリケーションであり、CryptoCurrencyに慣れる、それは他の目的があります.
このアプリの前提条件:
  • Basic Blather Server (以前のチュートリアルを参照)
  • あなたのアプリケーションにRADZENコンポーネントをインストールするhttps://blazor.radzen.com/get-started
  • Cininpaprika API(CryptoCurrency Infoを得るために)C Chorperラッパーを使用して
  • コードリポジトリ
    アプリケーションは、下に住んでいます:https://github.com/MSiccDev/CoinpaprikaAPI
    このアプリは次のように動作します.
  • ルート/CointableはAPIを使用してトップ100の暗号通貨を示します

  • 各通貨ごとに詳細をクリックして、2457 79172は、ルート/coinhistoryチャートと歴史的なデータを選択された通貨を表示されます

  • ルート/coingridは1と同じ情報を表示します

  • ボーナス
    このアプリはエクスポートExcel機能を、次のことを達成することができます:
    WWWRootを作成します.js
    function saveAsExcel(fileName, byteContent) {
        var link = document.createElement('a');
        link.download = fileName;
        console.log(fileName);
        link.href = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' + byteContent;
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    }
    
    Cacheホストの下部にファイル参照を含めます.他のスクリプトのすぐ下に
        <script src="/js/DownloadExcel.js"></script>
    
    インストールNepGetパッケージを介して
    ページ/Cointable(またはExcelからエクスポートする必要がある場所)、ボタンのマークアップを挿入する
     <button class="btn btn-primary" @onclick="GenerateExcel">Download</button>
    
    Excelエクスポートを使用するページの上部に以下を含める
    @inject IJSRuntime iJSRuntime;
    
    Excelでエクスポートする必要があるリストがあるページのコードセクションでGenerateExcelのハンドラを書き込みます
    private async Task DownloadExcel(IJSRuntime myJSRuntime)
    {
            byte[] file;
            if (coinList == null) return;
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");
                worksheet.Cells.LoadFromCollection(coinList, true);
                package.Save();
                file = package.GetAsByteArray();
            }
    
            await myJSRuntime.InvokeAsync<List<CoinInfo>>("saveAsExcel", "CoinList.xlsx", Convert.ToBase64String(file));
        }
    
        private async Task GenerateExcel()
        {
            await DownloadExcel(iJSRuntime);
        }