Como Criar Planilha Excel e Ler Arquivo Excel com IronXL em Docker
Quer Ler, editar e criar planilha Excel Usando C#?
O IronXL agora suporta totalmente Docker para criar planilha Excel e editar planilha Excel, incluindo Contêineres Docker Azure para Linux e Windows.
Por que usar Docker?
Docker permite que os desenvolvedores empacotem, enviem e executem facilmente qualquer aplicação como um contêiner leve, portátil e autossuficiente, que pode ser executado virtualmente em qualquer lugar.
IronXL e Linux Primer
Se o Docker com .NET é novo para você, recomendamos este excelente artigo sobre como configurar a depuração e integração do Docker com projetos do Visual Studio. https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019
Também recomendamos muito que leia nosso Guia de Configuração e Compatibilidade do IronXL para Linux
Distribuições Linux recomendadas para Docker
Recomendamos os sistemas operacionais Linux de 64 bits mais recentes listados abaixo para uma "configuração fácil" do IronPDF.
- Ubuntu 20
- Ubuntu 18
- Debian 11
- Debian 10 [Atualmente o padrão Linux do Microsoft Azure]
- CentOS 7
- CentOS 8
Recomendamos usar as Imagens Docker Oficiais da Microsoft. Outras distribuições Linux são compatíveis em parte, mas podem exigir configuração manual usando apt-get. Veja nosso guia "Configuração Manual do Linux".
Arquivos Docker funcionais para Ubuntu e Debian estão incluídos neste documento:
Essenciais da Instalação do Docker do IronXL no Linux
Use Nosso Pacote NuGet
Recomendamos usar o Pacote NuGet IronXL. Ele funciona ao desenvolver no Windows, macOS e Linux.
Install-Package IronXL.Excel
Files Docker do Ubuntu Linux
Ubuntu 20 com .NET 5
# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app
# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Ubuntu 20 com .NET 3.1 LTS
# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-focal AS base
WORKDIR /app
# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-focal AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Ubuntu 18 com .NET 3.1 LTS
# Base runtime image (Ubuntu 18 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-bionic AS base
WORKDIR /app
# Base development image (Ubuntu 18 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
DockerFiles para Debian Linux
Debian 11 com .NET 5
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:5.0-bullseye-slim AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 11 com .NET 3.1 LTS
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:3.1-bullseye-slim AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye-slim AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 10 com .NET 5
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Debian 10 com .NET 3.1 LTS
# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base
WORKDIR /app
# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
CentOS 7 com .NET 3.1 LTS
# Base runtime image (CentOS 7)
FROM centos:7 AS base
WORKDIR /app
# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
CentOS 8 com .NET 3.1 LTS
# Base runtime image (CentOS 8)
FROM centos:8 AS base
WORKDIR /app
# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y
WORKDIR /src
# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"
# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build
# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish
# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]Perguntas frequentes
Como posso configurar o IronXL em um contêiner Docker?
Para configurar o IronXL em um contêiner Docker, você precisa usar o pacote NuGet IronXL, compatível com Windows, macOS e Linux. Instale-o usando o comando: dotnet add package IronXL . Para Docker, integre o pacote ao seu Dockerfile e certifique-se de que seu aplicativo possa acessar as bibliotecas e dependências necessárias.
Quais são os benefícios de usar o Docker para aplicações em Excel?
O Docker permite empacotar, distribuir e executar aplicativos do Excel como contêineres leves e portáteis, garantindo consistência e eficiência em diferentes ambientes. Isso ajuda a manter um ambiente de desenvolvimento e produção estável e reproduzível.
Quais distribuições Linux funcionam melhor com o IronXL no Docker?
As distribuições Linux recomendadas para configurar o IronXL no Docker são Ubuntu 18, Ubuntu 20, Debian 10, Debian 11, CentOS 7 e CentOS 8. Essas distribuições fornecem um ambiente estável para contêineres Docker que executam aplicativos do Excel.
Posso usar o IronXL em contêineres Docker tanto para Windows quanto para Linux?
Sim, o IronXL oferece suporte a contêineres Docker em plataformas Windows e Linux. Isso inclui contêineres hospedados no Azure, permitindo opções de implantação flexíveis.
Quais imagens Docker são recomendadas para aplicações .NET que utilizam o IronXL?
Para aplicações .NET que utilizam IronXL, recomenda-se o uso das imagens Docker oficiais da Microsoft para o runtime e SDK do .NET. Essas imagens são otimizadas para aplicações .NET e podem ser encontradas no Docker Hub.
Como posso solucionar problemas com o IronXL em um ambiente Docker?
Se você encontrar problemas com o IronXL no Docker, verifique se todas as dependências estão instaladas corretamente no seu contêiner Docker. Confira a configuração do seu Dockerfile e certifique-se de que a versão correta do .NET está sendo usada. Consulte a documentação do IronXL e os guias de solução de problemas oficiais do Docker para obter mais ajuda.
Quais recursos estão disponíveis para aprender mais sobre a integração do Docker e do IronXL?
Para obter mais informações sobre a integração do Docker e do IronXL, consulte a documentação da Microsoft sobre Docker para projetos .NET e Visual Studio. Além disso, o guia de configuração do IronXL para Linux fornece informações valiosas para configurar ambientes Docker.

