Этот раздел подробно объясняет использование Magicodes.IE и его конфигурацию в среде Docker.
Install-Package Magicodes.IE.Excel
Install-Package Magicodes.IE.Pdf
[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 = "Мистер А",
Age = 18,
Remarks = "Меня зовут Мистер А, мне 18 лет",
Birthday = DateTime.Now
},
new StudentExcel
{
Name = "Мистер Б",
Age = 19,
Remarks = "Меня зовут Мистер Б, мне 19 лет",
Birthday = DateTime.Now
},
new StudentExcel
{
Name = "Мистер C",
Age = 20,
Remarks = "Меня зовут Мистер C, мне 20 лет",
Birthday = DateTime.Now
}
});
return File("test.xlsx", "application/ms-excel", result.FileName);
}
[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 = "Мистер А",
Age = 18,
Remarks = "Меня зовут Мистер А, мне 18 лет",
Birthday = DateTime.Now
},
new StudentPdf
{
Name = "Мистер Б",
Age = 19,
Remarks = "Меня зовут Мистер Б, мне 19 лет",
Birthday = DateTime.Now
},
new StudentPdf
{
Name = "Мистер C",
Age = 20,
Remarks = "Меня зовут Мистер C, мне 20 лет",
Birthday = DateTime.Now
}
});
return File("test.pdf", "application/pdf", result.FileName);
}
С использованием вышеуказанного кода мы создали демонстрационный пример экспорта, Основные характеристики и свойства можно найти в двух предыдущих статьях. Базовый учебник — экспорт Excel 、Базовый учебник — экспорт PDF
# Рекомендуется использовать этот базовый образ по следующим причинам. В этом образе установлена библиотека libgdiplus.
FROM ccr.ccs.tencentyun.com/magicodes/aspnetcore-runtime:latest AS base
WORKDIR /src
RUN ls
COPY /src/Magicodes.IE.Exporter/simsun.ttc /usr/share/fonts/simsun.ttc
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM 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/build
FROM build AS publish
RUN dotnet publish "Magicodes.IE.Exporter.csproj" -c Release -o /app/publish
FROM 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).
Причины рекомендации:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )