iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0

目的

使用epplus製作長條圖

同步更新於個人部落格
EPPlus圖表範例

1.建立新專案

選擇ASP.NET Core Web API專案範本,並執行下一步
步驟1

2.設定新的專案

命名你的專案名稱,並選擇專案要存放的位置。
步驟2

3.其他資訊

直接進行下一步
步驟3

4.NuGet加入套件

  • Epplus
    步驟4

5.設定appsetting檔案

為了避免LicenseException,故需要在appsetting加入下列文字

  "EPPlus": {
    "ExcelPackage": {
      "LicenseContext": "Commercial" //The license context used
    }
  }

步驟5

6.編輯WeatherForecastController檔案

將預設的API註解
步驟6-1
寫新的對外API

    [HttpGet(Name = "Import")]
    public ActionResult ImportExcel() {
      //建立excel所有操作的實例
      using ExcelPackage excelPackage = new();
      var ws = excelPackage.Workbook.Worksheets.Add("第一頁");
      Random Random = new Random();
      //ws.Cells[上下(row),左右(col)]
      ws.Cells[1, 2].Value = "第一季";
      ws.Cells[1, 3].Value = "第二季";
      ws.Cells[1, 4].Value = "第三季";
      ws.Cells[1, 5].Value = "第四季";
      ws.Cells[2, 1].Value = "A組";
      ws.Cells[3, 1].Value = "B組";
      ws.Cells[4, 1].Value = "C組";
      ws.Cells[5, 1].Value = "D組";
      for (int i = 2; i <= 5; i++) {
        for (int j = 2; j <= 5; j++) {
          ws.Cells[i, j].Value = Random.Next(70, 150);
        }
      }
      //建立長條圖
      var BarChart = ws.Drawings.AddBarChart("BarChart", eBarChartType.ColumnClustered);
      //長條圖名稱
      BarChart.Title.Text = "年度季報表";
      //長條圖的位置
      BarChart.SetPosition(6, 0, 6, 0);
      //長條圖大小
      BarChart.SetSize(400, 400);
      //第一個顏色長條圖BarChart.Series.Add(數據區間,x軸名稱區間)=>數據區間從(2,2)到(2,5),X軸名稱(第一季、第二季、第三季、第四季)
      var Ateam = BarChart.Series.Add(ExcelCellBase.GetAddress(2, 2, 2, 5), ExcelCellBase.GetAddress(1, 2, 1, 5));
      //第一條顏色的名稱(A組)
      Ateam.Header = ws.Cells[2, 1].Text;
      var Bteam = BarChart.Series.Add(ExcelCellBase.GetAddress(3, 2, 3, 5), ExcelCellBase.GetAddress(1, 2, 1, 5));
      Bteam.Header = ws.Cells[3, 1].Text;
      var Cteam = BarChart.Series.Add(ExcelCellBase.GetAddress(4, 2, 4, 5), ExcelCellBase.GetAddress(1, 2, 1, 5));
      Cteam.Header = ws.Cells[4, 1].Text;
      var Dteam = BarChart.Series.Add(ExcelCellBase.GetAddress(5, 2, 5, 5), ExcelCellBase.GetAddress(1, 2, 1, 5));
      Dteam.Header = ws.Cells[5, 1].Text;
      //樣式使用1
      BarChart.StyleManager.SetChartStyle(ePresetChartStyle.HistogramChartStyle1);

      //將檔案匯出
      return File(excelPackage.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "製作長條圖");
    }

範例太長,只擷取部分
範例6-1

7.執行結果

範例7-1

範例檔

GitHub


上一篇
[.net 6] EPPlus範例
下一篇
[.net 6] Dapper範例
系列文
.net6套件入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言