日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET 开源导入导出库Magicodes.IE Docker中使用

發布時間:2023/12/4 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 开源导入导出库Magicodes.IE Docker中使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

更新歷史
2019.02.13
【Nuget】版本更新到2.0.2
【導入】修復單列導入的Bug,單元測試“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/issues/35)。
【導出】修復導出HTML、Pdf、Word時,模板在某些情況下編譯報錯的問題。
【導入】重寫空行檢查。
2019.02.14
【Nuget】版本更新到2.1.0
【導出】PDF導出支持.NET 4.6.1,具體見單元測試

說明

本章主要說明使用Magicodes.IE,在Docker環境中的配置.

要點

  • 通過Dto進行Excel導出

  • 導出PDF數據

  • Docker配置

示例

導出示例:

Install-Package Magicodes.IE.Excel Install-Package Magicodes.IE.Pdf
  • 導出Excel

[ExcelExporter(Name = "學生信息", TableStyle = "Light10", AutoFitAllColumn = true,MaxRowNumberOnASheet = 2)]public class StudentExcel{/// <summary>/// 姓名/// </summary>[ExporterHeader(DisplayName = "姓名")]public string Name { get; set; }/// <summary>/// 年齡/// </summary>[ExporterHeader(DisplayName = "年齡")]public int Age { get; set; }/// <summary>/// 備注/// </summary>public string Remarks { get; set; }/// <summary>/// 出生日期/// </summary>[ExporterHeader(DisplayName = "出生日期", Format = "yyyy-mm-DD")]public DateTime Birthday { get; set; }} public async Task<IActionResult> ExporterExcel() {IExporter exporter = new ExcelExporter();var result = await exporter.Export(Path.Combine("wwwroot","test.xlsx"), new List<StudentExcel>(){new StudentExcel{Name = "MR.A",Age = 18,Remarks = "我叫MR.A,今年18歲",Birthday=DateTime.Now},new StudentExcel{Name = "MR.B",Age = 19,Remarks = "我叫MR.B,今年19歲",Birthday=DateTime.Now},new StudentExcel{Name = "MR.C",Age = 20,Remarks = "我叫MR.C,今年20歲",Birthday=DateTime.Now}});return File("test.xlsx", "application/ms-excel", result.FileName);}
  • 導出PDF

[PdfExporter(Name = "學生信息")]public class StudentPdf{/// <summary>/// 姓名/// </summary>[ExporterHeader(DisplayName = "姓名")]public string Name { get; set; }/// <summary>/// 年齡/// </summary>[ExporterHeader(DisplayName = "年齡")]public int Age { get; set; }/// <summary>/// 備注/// </summary>public string Remarks { get; set; }/// <summary>/// 出生日期/// </summary>[ExporterHeader(DisplayName = "出生日期", Format = "yyyy-mm-DD")]public DateTime Birthday { get; set; }}public async Task<IActionResult> ExporterPdf() {var exporter = new PdfExporter();var result = await exporter.ExportListByTemplate(Path.Combine("wwwroot", "test.pdf"), new List<StudentPdf>(){new StudentPdf{Name = "MR.A",Age = 18,Remarks = "我叫MR.A,今年18歲",Birthday=DateTime.Now},new StudentPdf{Name = "MR.B",Age = 19,Remarks = "我叫MR.B,今年19歲",Birthday=DateTime.Now},new StudentPdf{Name = "MR.C",Age = 20,Remarks = "我叫MR.C,今年20歲",Birthday=DateTime.Now}});return File("test.pdf", "application/pdf", result.FileName);}

通過上述代碼我們創建了一個導出示例,
具體特性屬性可以看一下前兩篇文章?基礎教程之導出Excel?、基礎教程之導出Pdf收據

Dockerfile配置

FROM ccr.ccs.tencentyun.com/magicodes/aspnetcore-runtime:latest AS base # 安裝libgdiplus庫,用于Excel導出 #RUN apt-get update && apt-get install -y libgdiplus libc6-dev #RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll#RUN apt-get update && apt-get install -y fontconfig WORKDIR /src RUN ls COPY /src/Magicodes.IE.Exporter/simsun.ttc /usr/share/fonts/simsun.ttcWORKDIR /app EXPOSE 80 EXPOSE 443FROM mcr.microsoft.com/dotnet/core/sdk:latest AS build WORKDIR /src COPY ["Magicodes.IE.Exporter.csproj", "src/Magicodes.IE.Exporter/"] RUN dotnet restore "src/Magicodes.IE.Exporter/Magicodes.IE.Exporter.csproj" COPY . . WORKDIR "src/Magicodes.IE.Exporter" RUN dotnet build "Magicodes.IE.Exporter.csproj" -c Release -o /app/buildFROM build AS publish RUN dotnet publish "Magicodes.IE.Exporter.csproj" -c Release -o /app/publishFROM base AS final WORKDIR /app COPY --from= publish /app/publish . ENTRYPOINT ["dotnet", "Magicodes.IE.Exporter.dll"]# 安裝libgdiplus庫,用于Excel導出 RUN apt-get update && apt-get install -y libgdiplus libc6-dev RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll# 安裝fontconfig庫,用于Pdf導出 RUN apt-get update && apt-get install -y fontconfig COPY /simsun.ttc /usr/share/fonts/simsun.ttc

注意,以上基礎鏡像使用:(ccr.ccs.tencentyun.com/magicodes/aspnetcore-runtime:latest) ,該鏡像GitHub地址:(https://github.com/xin-lai/aspnetcore-docker)。

推薦理由:

  • 加快鏡像構建和拉取速度,加速CI\CD構建以及提高開發體驗

  • 時區默認設置為東八區,見“ENV TZ=Asia/Shanghai”

  • 默認安裝了libgdiplus等庫,以便支持Excel導入導出

  • 目前提供了騰訊云的公共鏡像和hub.docker的公共鏡像,大家可以按需

Reference

https://github.com/dotnetcore/Magicodes.IE

https://github.com/hueifeng/BlogSample/tree/master/src/Magicodes.IE.Exporter

總結

以上是生活随笔為你收集整理的ASP.NET 开源导入导出库Magicodes.IE Docker中使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。