C# Salvar arquivo Excel — Salvar Excel em XLSX, PDF e mais

Salvar arquivos Excel em C# é uma tarefa comum em muitas aplicações .NET, especialmente ao gerar relatórios, exportar dados analíticos ou automatizar logs do sistema. Esteja você trabalhando com resumos financeiros ou dados de operações diárias, ser capaz de criar e salvar arquivos Excel programaticamente pode mejorar significativamente a eficiência e a precisão.
Em C#, os desenvolvedores podem manipular arquivos Excel de várias maneiras — criando novas pastas de trabalho, escrevendo dados e salvando-os em vários formatos, como XLSX, CSV ou PDF. Com a ajuda de bibliotecas dedicadas ao Excel, essas operações podem ser automatizadas eficientemente sem depender do Microsoft Excel ou de intervenção manual.
Neste artigo, exploraremos como:
- Preparar seu ambiente de desenvolvimento
- Salvar dados de DataTable ou DataGridView no Excel
- Salvar arquivos Excel em diferentes formatos de planilha (CSV, XLS, etc.)
- Exportar arquivos Excel para formatos de documento (PDF, HTML, etc.)
- Salvar pastas de trabalho do Excel em um MemoryStream para aplicativos da web
- Abrir e salvar novamente arquivos Excel existentes
Prepare o Ambiente de Desenvolvimento
Antes de mergulhar no código, configure seu ambiente de desenvolvimento com uma biblioteca Excel que suporte a criação, leitura e salvamento de arquivos em .NET. Neste tutorial, usaremos o Free Spire.XLS for .NET.
Passo 1: Instale o Spire.XLS via NuGet
Install-Package FreeSpire.XLS
Passo 2: Importe o Namespace Necessário
using Spire.Xls;
Passo 3: Crie, Escreva e Salve um Arquivo Excel Simples
// Crie uma nova pasta de trabalho e obtenha a primeira planilha
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// Escreva "Olá Mundo!" na célula A1
sheet.Range["A1"].Text = "Olá Mundo!";
// Salve a pasta de trabalho em um arquivo
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
Este exemplo simples mostra o fluxo de trabalho básico: criar uma pasta de trabalho, escrever dados em uma célula e salvar o arquivo.
Depois disso, você pode explorar classes e métodos chave como:
- Workbook – representa o arquivo Excel inteiro.
- Worksheet – representa uma única planilha dentro da pasta de trabalho.
- Range – permite acesso a células específicas para entrada, formatação ou estilização.
- Workbook.SaveToFile() – salva a pasta de trabalho no disco no formato Excel especificado.
Salvar Dados em um Arquivo Excel em C#
Salvar dados estruturados como DataTable ou DataGridView em um arquivo Excel é uma das tarefas mais práticas no desenvolvimento em C#. Se sua aplicação produz resultados de banco de dados, conteúdo de grade de interface do usuário ou relatórios automatizados, exportar esses conjuntos de dados para o Excel oferece melhor legibilidade e compatibilidade.
Exemplo 1: Salvar DataTable no Excel
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// Adicionar linhas de exemplo
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// Inserir o DataTable na planilha
sheet.InsertDataTable(table, true, 1, 1);
// Aplicar formatos incorporados
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// Salvar no Excel
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
Como funciona:
- InsertDataTable() insere dados a partir de uma célula específica.
- O argumento true inclui os cabeçalhos das colunas.
- SaveToFile() salva a pasta de trabalho no disco; o segundo parâmetro especifica a versão do formato Excel.
- FileFormat.Version2016 especifica a versão do formato Excel.
Abaixo está um exemplo de saída mostrando como o DataTable exportado aparece no Excel:

Exemplo 2: Salvar DataGridView no Excel
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
Dica: Antes de salvar, certifique-se de que a fonte de dados do seu DataGridView seja convertida corretamente para um DataTable. Isso garante que a estrutura exportada corresponda ao layout da grade da interface do usuário.
Se você quiser aprender como criar arquivos Excel com mais tipos de dados, formatação e outros elementos, pode explorar o artigo Como Criar Arquivos Excel em C#.
Salvar Arquivo Excel como CSV ou XLS em C#
Diferentes sistemas e plataformas exigem diferentes formatos de planilha. Embora o XLSX seja agora o padrão, CSV, XLS e outros formatos permanecem comuns em ambientes empresariais. Exportar para diferentes formatos permite que os dados do Excel sejam compartilhados, processados ou importados por várias aplicações.
Exemplo 1: Salvar Excel como CSV
CSV (Valores Separados por Vírgula) é um formato simples baseado em texto, ideal para trocar dados com bancos de dados, aplicações web ou outros sistemas que suportam arquivos de texto simples.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
Exemplo 2: Salvar Excel como XLS (Formato Legado)
XLS (formato Excel 97–2003) é um formato binário legado ainda usado em sistemas ou aplicações mais antigas que não suportam XLSX. Salvar em XLS garante compatibilidade com fluxos de trabalho empresariais legados.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
Formatos de Planilha Adicionais Suportados
Além dos formatos CSV, XLS e XLSX comumente usados, a biblioteca também suporta vários outros formatos de planilha e modelo. A tabela abaixo lista esses formatos juntamente com seus valores de enumeração FileFormat correspondentes para fácil referência ao salvar arquivos programaticamente.
| Formato | Descrição | Enum Correspondente (FileFormat) |
|---|---|---|
| ODS | Planilha OpenDocument | FileFormat.ODS |
| XLSM | Pasta de trabalho do Excel habilitada para macro | FileFormat.Xlsm |
| XLSB | Pasta de trabalho binária do Excel | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Modelo do Excel 97–2003 | FileFormat.XLT |
| XLTX | Modelo Excel Open XML | FileFormat.XLTX |
| XLTM | Modelo do Excel habilitado para macro | FileFormat.XLTM |
Esses formatos adicionais são úteis para organizações que trabalham com sistemas legados, padrões de documentos abertos ou fluxos de trabalho de automação baseados em macro/modelo.
Salvar Excel como PDF ou HTML em C#
Em muitos casos, os arquivos do Excel precisam ser convertidos em formatos de documento ou web para facilitar a publicação, impressão ou compartilhamento.
Exportar para PDF é ideal para relatórios de layout fixo e impressão, enquanto HTML é adequado para visualizar dados do Excel em um navegador da web.
Exemplo 1: Salvar Excel como PDF
O exemplo a seguir mostra como salvar uma pasta de trabalho do Excel como um arquivo PDF usando C#. Isso é útil para gerar relatórios que preservam o layout e a formatação.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
Aqui está um exemplo do arquivo PDF gerado após a exportação do Excel:

Exemplo 2: Salvar Excel como HTML
Este exemplo demonstra como salvar uma pasta de trabalho do Excel como um arquivo HTML, facilitando a renderização dos dados em um navegador da web ou a integração com aplicações web.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
Abaixo está uma prévia do arquivo HTML exportado renderizado em um navegador:

Formatos Adicionais de Documento e Web Suportados
Além de PDF e HTML, a biblioteca suporta vários outros formatos amigáveis para documentos e web. A tabela abaixo mostra esses formatos juntamente com seus valores de enumeração FileFormat para fácil referência.
| Formato | Descrição | Enum Correspondente (FileFormat) |
|---|---|---|
| XML | Dados do Excel exportados como XML | FileFormat.XML |
| Bitmap / Imagem | Exportar Excel como Bitmap ou outros formatos de imagem | FileFormat.Bitmap |
| XPS | Documento de Especificação de Papel XML | FileFormat.XPS |
| PostScript | Documento PostScript | FileFormat.PostScript |
| OFD | Formato de Documento de Layout Fixo Aberto | FileFormat.OFD |
| PCL | Arquivo de Linguagem de Comando de Impressora | FileFormat.PCL |
| Markdown | Formato de arquivo Markdown | FileFormat.Markdown |
Esses formatos fornecem flexibilidade adicional para distribuir conteúdo do Excel em diferentes plataformas e fluxos de trabalho, seja para impressão, publicação na web ou automação.
Salvar um Arquivo Excel em MemoryStream em C#
Em aplicações web ou serviços em nuvem, salvar arquivos Excel diretamente no disco pode não ser ideal por razões de segurança ou desempenho. Usar MemoryStream permite gerar arquivos Excel na memória e entregá-los diretamente aos clientes para download. O Spire.XLS for .NET também suporta tanto o carregamento quanto o salvamento de pastas de trabalho através do MemoryStream, facilitando o manuseio de arquivos Excel inteiramente na memória.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// Exemplo: enviar bytes para o cliente para download no ASP.NET
// Response.BinaryWrite(bytes);
}
Esta abordagem é particularly útil para ASP.NET, Web API ou serviços em nuvem, onde você deseja servir arquivos Excel dinamicamente sem criar arquivos temporários no servidor.
Abrir e Salvar Novamente Arquivos Excel em C#
Em muitas aplicações, pode ser necessário carregar uma pasta de trabalho do Excel existente, aplicar atualizações ou modificações e, em seguida, salvá-la de volta no disco ou convertê-la para um formato diferente. Isso é comum ao atualizar relatórios, modificar dados exportados ou automatizar fluxos de trabalho de arquivos Excel.
Exemplo: Abrir e Atualizar um Arquivo Excel
O código C# a seguir carrega a pasta de trabalho anterior, atualiza a primeira célula e salva as alterações:
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // Atualizar o valor da célula
sheet.Range["A1"].AutoFitColumns(); // Ajustar automaticamente a largura da coluna
// Salvar a pasta de trabalho atualizada
workbook.Save(); // Salva no arquivo original
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // Salvar como novo arquivo
A captura de tela abaixo mostra a planilha do Excel atualizada após modificar e salvar o arquivo:

Você também pode conferir o guia detalhado sobre edição de arquivos Excel usando C# para cenários mais avançados.
Melhores Práticas ao Salvar Arquivos Excel
-
Evite Sobrescrever Arquivos
Verifique se o arquivo de destino existe antes de salvar para evitar a perda acidental de dados.
-
Gerencie Permissões e Caminhos Adequadamente
Garanta que sua aplicação tenha permissão de escrita na pasta de destino, especialmente em ambientes web ou na nuvem.
-
Escolha o Formato Correto
Use XLSX para compatibilidade moderna, CSV para troca de dados e PDF para imprimir ou compartilhar relatórios.
Conclusão
Salvar arquivos Excel em C# abrange uma ampla gama de operações — desde a escrita de conjuntos de dados estruturados, exportação para diferentes formatos de planilha, conversão para PDF/HTML, até o manuseio de fluxos de arquivos em aplicações web.
Com a flexibilidade oferecida por bibliotecas como o Spire.XLS for .NET, os desenvolvedores podem implementar poderosos fluxos de trabalho de automação do Excel com facilidade.
Perguntas Frequentes
P1: Como salvo um arquivo Excel em C#?
Use SaveToFile() com o ExcelVersion ou FileFormat apropriado:
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
P2: Como abro e modifico um arquivo Excel existente?
Carregue a pasta de trabalho usando LoadFromFile(), faça as alterações e salve:
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
P3: Como salvo como CSV ou PDF?
Especifique o FileFormat desejado em SaveToFile():
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
P4: Posso salvar o Excel na memória em vez do disco?
Sim. Use SaveToStream() para enviar a saída para um MemoryStream, útil em aplicações web ou na nuvem:
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
Veja Também
C# Excel 파일 저장 — Excel을 XLSX, PDF 등으로 저장하기
```html

C#에서 Excel 파일 저장하기는 많은 .NET 애플리케이션에서 일반적인 작업이며, 특히 보고서 생성, 분석 데이터 내보내기 또는 시스템 로그 자동화 시에 그렇습니다. 재무 요약이나 일일 운영 데이터를 다루든, 프로그래밍 방식으로 Excel 파일을 생성하고 저장할 수 있으면 효율성과 정확성을 크게 향상시킬 수 있습니다.
C#에서 개발자는 새 통합 문서 만들기, 데이터 쓰기, XLSX, CSV 또는 PDF와 같은 다양한 형식으로 저장하는 등 여러 가지 방법으로 Excel 파일을 처리할 수 있습니다. 전용 Excel 라이브러리를 사용하면 Microsoft Excel이나 수동 개입 없이 이러한 작업을 효율적으로 자동화할 수 있습니다.
이 기사에서는 다음 방법을 살펴보겠습니다.
- 개발 환경 준비
- DataTable 또는 DataGridView 데이터를 Excel에 저장
- Excel 파일을 다른 스프레드시트 형식으로 저장 (CSV, XLS 등)
- Excel 파일을 문서 형식으로 내보내기 (PDF, HTML 등)
- 웹 앱용 Excel 통합 문서를 MemoryStream에 저장
- 기존 Excel 파일 열기 및 다시 저장
개발 환경 준비
코드를 살펴보기 전에 .NET에서 파일 생성, 읽기 및 저장을 지원하는 Excel 라이브러리로 개발 환경을 설정하세요. 이 튜토리얼에서는 .NET용 무료 Spire.XLS를 사용합니다.
1단계: NuGet을 통해 Spire.XLS 설치
Install-Package FreeSpire.XLS
2단계: 필요한 네임스페이스 가져오기
using Spire.Xls;
3단계: 간단한 Excel 파일 생성, 작성 및 저장
// 새 통합 문서를 만들고 첫 번째 워크시트를 가져옵니다.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// A1 셀에 "Hello World!"를 씁니다.
sheet.Range["A1"].Text = "Hello World!";
// 통합 문서를 파일에 저장합니다.
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
이 간단한 예는 통합 문서 만들기, 셀에 데이터 쓰기, 파일 저장과 같은 기본 워크플로를 보여줍니다.
그런 다음 다음과 같은 주요 클래스 및 메서드를 탐색할 수 있습니다.
- Workbook – 전체 Excel 파일을 나타냅니다.
- Worksheet – 통합 문서 내의 단일 시트를 나타냅니다.
- Range – 입력, 서식 지정 또는 스타일링을 위해 특정 셀에 액세스할 수 있습니다.
- Workbook.SaveToFile() – 지정된 Excel 형식으로 통합 문서를 디스크에 저장합니다.
C#에서 Excel 파일에 데이터 저장
DataTable 또는 DataGridView와 같은 구조화된 데이터를 Excel 파일에 저장하는 것은 C# 개발에서 가장 실용적인 작업 중 하나입니다. 애플리케이션이 데이터베이스 결과, UI 그리드 콘텐츠 또는 자동화된 보고서를 생성하든, 이러한 데이터 세트를 Excel로 내보내면 가독성과 호환성이 향상됩니다.
예제 1: DataTable을 Excel에 저장
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// 샘플 행 추가
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// DataTable을 워크시트에 삽입
sheet.InsertDataTable(table, true, 1, 1);
// 기본 제공 형식 적용
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// Excel에 저장
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
작동 방식:
- InsertDataTable()은 특정 셀부터 데이터를 삽입합니다.
- true 인수는 열 머리글을 포함합니다.
- SaveToFile()은 통합 문서를 디스크에 저장합니다. 두 번째 매개변수는 Excel 형식 버전을 지정합니다.
- FileFormat.Version2016은 Excel 형식 버전을 지정합니다.
아래는 내보낸 DataTable이 Excel에서 어떻게 보이는지 보여주는 샘플 출력입니다.

예제 2: DataGridView를 Excel에 저장
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
팁: 저장하기 전에 DataGridView의 데이터 소스가 DataTable로 올바르게 캐스팅되었는지 확인하세요. 이렇게 하면 내보낸 구조가 UI 그리드 레이아웃과 일치하게 됩니다.
더 많은 데이터 유형, 서식 및 기타 요소를 사용하여 Excel 파일을 만드는 방법을 배우고 싶다면 C#에서 Excel 파일을 만드는 방법 문서를 참조하세요.
C#에서 Excel 파일을 CSV 또는 XLS로 저장
시스템과 플랫폼마다 다른 스프레드시트 형식이 필요합니다. XLSX가 이제 표준이지만 CSV, XLS 및 기타 형식은 엔터프라이즈 환경에서 여전히 일반적입니다. 다른 형식으로 내보내면 다양한 애플리케이션에서 Excel 데이터를 공유, 처리 또는 가져올 수 있습니다.
예제 1: Excel을 CSV로 저장
CSV(쉼표로 구분된 값)는 데이터베이스, 웹 애플리케이션 또는 일반 텍스트 파일을 지원하는 기타 시스템과 데이터를 교환하는 데 이상적인 간단한 텍스트 기반 형식입니다.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
예제 2: Excel을 XLS(레거시 형식)로 저장
XLS(Excel 97–2003 형식)는 XLSX를 지원하지 않는 이전 시스템이나 애플리케이션에서 여전히 사용되는 레거시 이진 형식입니다. XLS로 저장하면 레거시 엔터프라이즈 워크플로와의 호환성이 보장됩니다.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
추가 지원되는 스프레드시트 형식
일반적으로 사용되는 CSV, XLS 및 XLSX 형식 외에도 라이브러리는 여러 다른 스프레드시트 및 템플릿 형식도 지원합니다. 아래 표에는 프로그래밍 방식으로 파일을 저장할 때 쉽게 참조할 수 있도록 해당 FileFormat 열거형 값과 함께 이러한 형식이 나열되어 있습니다.
| 형식 | 설명 | 해당 열거형(FileFormat) |
|---|---|---|
| ODS | OpenDocument 스프레드시트 | FileFormat.ODS |
| XLSM | 매크로 사용 Excel 통합 문서 | FileFormat.Xlsm |
| XLSB | 이진 Excel 통합 문서 | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Excel 97–2003 서식 파일 | FileFormat.XLT |
| XLTX | Excel Open XML 서식 파일 | FileFormat.XLTX |
| XLTM | 매크로 사용 Excel 서식 파일 | FileFormat.XLTM |
이러한 추가 형식은 레거시 시스템, 개방형 문서 표준 또는 매크로/템플릿 기반 자동화 워크플로를 사용하는 조직에 유용합니다.
C#에서 Excel을 PDF 또는 HTML로 저장
많은 경우 Excel 파일은 게시, 인쇄 또는 공유를 용이하게 하기 위해 문서 또는 웹 형식으로 변환해야 합니다.
PDF로 내보내는 것은 고정 레이아웃 보고서 및 인쇄에 이상적이며, HTML은 웹 브라우저에서 Excel 데이터를 보는 데 적합합니다.
예제 1: Excel을 PDF로 저장
다음 예제는 C#을 사용하여 Excel 통합 문서를 PDF 파일로 저장하는 방법을 보여줍니다. 이는 레이아웃과 서식을 유지하는 보고서를 생성하는 데 유용합니다.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
다음은 Excel에서 내보낸 후 생성된 PDF 파일의 예입니다.

예제 2: Excel을 HTML로 저장
이 예제는 Excel 통합 문서를 HTML 파일로 저장하여 웹 브라우저에서 데이터를 렌더링하거나 웹 애플리케이션과 통합하기 쉽게 만드는 방법을 보여줍니다.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
아래는 브라우저에서 렌더링된 내보낸 HTML 파일의 미리보기입니다.

추가 지원되는 문서 및 웹 형식
PDF 및 HTML 외에도 라이브러리는 여러 다른 문서 및 웹 친화적인 형식을 지원합니다. 아래 표에는 쉽게 참조할 수 있도록 FileFormat 열거형 값과 함께 이러한 형식이 나와 있습니다.
| 형식 | 설명 | 해당 열거형(FileFormat) |
|---|---|---|
| XML | XML로 내보낸 Excel 데이터 | FileFormat.XML |
| Bitmap / Image | Excel을 비트맵 또는 다른 이미지 형식으로 내보내기 | FileFormat.Bitmap |
| XPS | XML Paper Specification 문서 | FileFormat.XPS |
| PostScript | PostScript 문서 | FileFormat.PostScript |
| OFD | 개방형 고정 레이아웃 문서 형식 | FileFormat.OFD |
| PCL | 프린터 명령 언어 파일 | FileFormat.PCL |
| Markdown | Markdown 파일 형식 | FileFormat.Markdown |
이러한 형식은 인쇄, 웹 게시 또는 자동화를 위해 다양한 플랫폼과 워크플로에서 Excel 콘텐츠를 배포하는 데 추가적인 유연성을 제공합니다.
C#에서 Excel 파일을 MemoryStream에 저장
웹 애플리케이션이나 클라우드 서비스에서는 보안 또는 성능상의 이유로 Excel 파일을 디스크에 직접 저장하는 것이 이상적이지 않을 수 있습니다. MemoryStream을 사용하면 메모리에서 Excel 파일을 생성하여 클라이언트에 직접 전달하여 다운로드할 수 있습니다. .NET용 Spire.XLS는 또한 MemoryStream을 통한 통합 문서 로드 및 저장을 모두 지원하므로 메모리에서 Excel 파일을 완전히 처리하기가 쉽습니다.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// 예: ASP.NET에서 다운로드를 위해 클라이언트에 바이트 보내기
// Response.BinaryWrite(bytes);
}
이 접근 방식은 서버에 임시 파일을 만들지 않고 동적으로 Excel 파일을 제공하려는 ASP.NET, Web API 또는 클라우드 서비스에 특히 유용합니다.
C#에서 Excel 파일 열기 및 다시 저장
많은 애플리케이션에서 기존 Excel 통합 문서를 로드하고, 업데이트나 수정을 적용한 다음, 다시 디스크에 저장하거나 다른 형식으로 변환해야 할 수 있습니다. 이는 보고서를 업데이트하거나, 내보낸 데이터를 수정하거나, Excel 파일 워크플로를 자동화할 때 일반적입니다.
예제: Excel 파일 열기 및 업데이트
다음 C# 코드는 이전 통합 문서를 로드하고, 첫 번째 셀을 업데이트하고, 변경 사항을 저장합니다.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // 셀 값 업데이트
sheet.Range["A1"].AutoFitColumns(); // 열 너비 자동 맞춤
// 업데이트된 통합 문서 저장
workbook.Save(); // 원본 파일에 저장
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // 새 파일로 저장
아래 스크린샷은 파일을 수정하고 저장한 후 업데이트된 Excel 시트를 보여줍니다.

더 고급 시나리오에 대해서는 C#을 사용하여 Excel 파일 편집에 대한 자세한 가이드를 확인할 수도 있습니다.
Excel 파일 저장 시 모범 사례
-
파일 덮어쓰기 방지
실수로 인한 데이터 손실을 방지하기 위해 저장하기 전에 대상 파일이 있는지 확인하세요.
-
권한 및 경로를 올바르게 처리
특히 웹 또는 클라우드 환경에서 애플리케이션이 대상 폴더에 대한 쓰기 액세스 권한을 가지고 있는지 확인하세요.
-
올바른 형식 선택
최신 호환성을 위해서는 XLSX를, 데이터 교환을 위해서는 CSV를, 보고서 인쇄 또는 공유를 위해서는 PDF를 사용하세요.
결론
C#에서 Excel 파일 저장은 구조화된 데이터 세트 작성, 다른 스프레드시트 형식으로 내보내기, PDF/HTML로 변환, 웹 애플리케이션에서 파일 스트림 처리 등 광범위한 작업을 다룹니다.
.NET용 Spire.XLS와 같은 라이브러리가 제공하는 유연성을 통해 개발자는 강력한 Excel 자동화 워크플로를 쉽게 구현할 수 있습니다.
자주 묻는 질문
Q1: C#에서 Excel 파일을 어떻게 저장하나요?
적절한 ExcelVersion 또는 FileFormat과 함께 SaveToFile()을 사용하세요.
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
Q2: 기존 Excel 파일을 어떻게 열고 수정하나요?
LoadFromFile()을 사용하여 통합 문서를 로드하고, 변경한 다음, 저장하세요.
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
Q3: CSV 또는 PDF로 어떻게 저장하나요?
SaveToFile()에서 원하는 FileFormat을 지정하세요.
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
Q4: Excel을 디스크 대신 메모리에 저장할 수 있나요?
예. SaveToStream()을 사용하여 MemoryStream으로 출력하면 웹 또는 클라우드 애플리케이션에서 유용합니다.
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
참고 항목
```
C# Enregistrer un fichier Excel — Enregistrer Excel en XLSX, PDF et plus

L'enregistrement de fichiers Excel en C# est une tâche courante dans de nombreuses applications .NET, en particulier lors de la génération de rapports, de l'exportation de données analytiques ou de l'automatisation des journaux système. Que vous travailliez avec des résumés financiers ou des données d'opérations quotidiennes, être capable de créer et d'enregistrer des fichiers Excel par programmation peut améliorer considérablement l'efficacité et la précision.
En C#, les développeurs peuvent gérer les fichiers Excel de plusieurs manières : créer de nouveaux classeurs, écrire des données et les enregistrer dans divers formats tels que XLSX, CSV ou PDF. Avec l'aide de bibliothèques Excel dédiées, ces opérations peuvent être automatisées efficacement sans dépendre de Microsoft Excel ou d'une intervention manuelle.
Dans cet article, nous explorerons comment :
- Préparer votre environnement de développement
- Enregistrer des données DataTable ou DataGridView dans Excel
- Enregistrer des fichiers Excel dans différents formats de feuille de calcul (CSV, XLS, etc.)
- Exporter des fichiers Excel vers des formats de document (PDF, HTML, etc.)
- Enregistrer des classeurs Excel dans un MemoryStream pour les applications web
- Ouvrir et ré-enregistrer des fichiers Excel existants
Préparer l'environnement de développement
Avant de plonger dans le code, configurez votre environnement de développement avec une bibliothèque Excel qui prend en charge la création, la lecture et l'enregistrement de fichiers en .NET. Dans ce tutoriel, nous utiliserons Free Spire.XLS for .NET.
Étape 1 : Installer Spire.XLS via NuGet
Install-Package FreeSpire.XLS
Étape 2 : Importer l'espace de noms requis
using Spire.Xls;
Étape 3 : Créer, écrire et enregistrer un fichier Excel simple
// Créer un nouveau classeur et obtenir la première feuille de calcul
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// Écrire "Hello World!" dans la cellule A1
sheet.Range["A1"].Text = "Hello World!";
// Enregistrer le classeur dans un fichier
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
Cet exemple simple montre le flux de travail de base : créer un classeur, écrire des données dans une cellule et enregistrer le fichier.
Après cela, vous pouvez explorer les classes et méthodes clés telles que :
- Workbook – représente l'ensemble du fichier Excel.
- Worksheet – représente une seule feuille dans le classeur.
- Range – permet d'accéder à des cellules spécifiques pour la saisie, le formatage ou le style.
- Workbook.SaveToFile() – enregistre le classeur sur le disque dans le format Excel spécifié.
Enregistrer des données dans un fichier Excel en C#
L'enregistrement de données structurées comme DataTable ou DataGridView dans un fichier Excel est l'une des tâches les plus pratiques du développement C#. Que votre application produise des résultats de base de données, du contenu de grille d'interface utilisateur ou des rapports automatisés, l'exportation de ces ensembles de données vers Excel offre une meilleure lisibilité et compatibilité.
Exemple 1 : Enregistrer DataTable dans Excel
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// Ajouter des lignes d'exemple
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// Insérer le DataTable dans la feuille de calcul
sheet.InsertDataTable(table, true, 1, 1);
// Appliquer les formats intégrés
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// Enregistrer dans Excel
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
Comment ça marche :
- InsertDataTable() insère des données à partir d'une cellule spécifique.
- L'argument true inclut les en-têtes de colonne.
- SaveToFile() enregistre le classeur sur le disque ; le deuxième paramètre spécifie la version du format Excel.
- FileFormat.Version2016 spécifie la version du format Excel.
Voici un exemple de sortie montrant à quoi ressemble le DataTable exporté dans Excel :

Exemple 2 : Enregistrer DataGridView dans Excel
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
Conseil : Avant d'enregistrer, assurez-vous que la source de données de votre DataGridView est correctement convertie en DataTable. Cela garantit que la structure exportée correspond à la disposition de la grille de l'interface utilisateur.
Si vous souhaitez apprendre à créer des fichiers Excel avec plus de types de données, de formatage et d'autres éléments, vous pouvez explorer l'article Comment créer des fichiers Excel en C#.
Enregistrer un fichier Excel en CSV ou XLS en C#
Différents systèmes et plates-formes nécessitent différents formats de feuille de calcul. Bien que XLSX soit maintenant la norme, CSV, XLS et d'autres formats restent courants dans les environnements d'entreprise. L'exportation vers différents formats permet de partager, de traiter ou d'importer des données Excel par diverses applications.
Exemple 1 : Enregistrer Excel en CSV
CSV (Comma-Separated Values) est un format texte simple, idéal pour échanger des données avec des bases de données, des applications Web ou d'autres systèmes prenant en charge les fichiers texte brut.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
Exemple 2 : Enregistrer Excel en XLS (format hérité)
XLS (format Excel 97–2003) est un format binaire hérité encore utilisé dans les anciens systèmes ou applications qui ne prennent pas en charge XLSX. L'enregistrement au format XLS garantit la compatibilité avec les flux de travail d'entreprise hérités.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
Formats de feuille de calcul supplémentaires pris en charge
En plus des formats CSV, XLS et XLSX couramment utilisés, la bibliothèque prend également en charge plusieurs autres formats de feuille de calcul et de modèle. Le tableau ci-dessous répertorie ces formats ainsi que leurs valeurs d'énumération FileFormat correspondantes pour une référence facile lors de l'enregistrement de fichiers par programmation.
| Format | Description | Énumération correspondante (FileFormat) |
|---|---|---|
| ODS | Feuille de calcul OpenDocument | FileFormat.ODS |
| XLSM | Classeur Excel avec macros | FileFormat.Xlsm |
| XLSB | Classeur Excel binaire | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Modèle Excel 97–2003 | FileFormat.XLT |
| XLTX | Modèle Excel Open XML | FileFormat.XLTX |
| XLTM | Modèle Excel avec macros | FileFormat.XLTM |
Ces formats supplémentaires sont utiles pour les organisations qui travaillent avec des systèmes hérités, des normes de documents ouverts ou des flux de travail d'automatisation basés sur des macros/modèles.
Enregistrer Excel en PDF ou HTML en C#
Dans de nombreux cas, les fichiers Excel doivent être convertis en formats de document ou Web pour faciliter la publication, l'impression ou le partage.
L'exportation au format PDF est idéale pour les rapports à mise en page fixe et l'impression, tandis que le HTML convient à l'affichage des données Excel dans un navigateur Web.
Exemple 1 : Enregistrer Excel en PDF
L'exemple suivant montre comment enregistrer un classeur Excel en tant que fichier PDF en utilisant C#. Ceci est utile pour générer des rapports qui préservent la mise en page et le formatage.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
Voici un exemple du fichier PDF généré après l'exportation depuis Excel :

Exemple 2 : Enregistrer Excel en HTML
Cet exemple montre comment enregistrer un classeur Excel en tant que fichier HTML, ce qui facilite le rendu des données dans un navigateur Web ou leur intégration dans des applications Web.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
Voici un aperçu du fichier HTML exporté rendu dans un navigateur :

Formats de document et Web supplémentaires pris en charge
En plus de PDF et HTML, la bibliothèque prend en charge plusieurs autres formats de documents et compatibles avec le Web. Le tableau ci-dessous présente ces formats ainsi que leurs valeurs d'énumération FileFormat pour une référence facile.
| Format | Description | Énumération correspondante (FileFormat) |
|---|---|---|
| XML | Données Excel exportées en XML | FileFormat.XML |
| Bitmap / Image | Exporter Excel en Bitmap ou autres formats d'image | FileFormat.Bitmap |
| XPS | Document XML Paper Specification | FileFormat.XPS |
| PostScript | Document PostScript | FileFormat.PostScript |
| OFD | Format de document à mise en page fixe ouvert | FileFormat.OFD |
| PCL | Fichier Printer Command Language | FileFormat.PCL |
| Markdown | Format de fichier Markdown | FileFormat.Markdown |
Ces formats offrent une flexibilité supplémentaire pour la distribution de contenu Excel sur différentes plates-formes et flux de travail, que ce soit pour l'impression, la publication Web ou l'automatisation.
Enregistrer un fichier Excel dans MemoryStream en C#
Dans les applications Web ou les services cloud, l'enregistrement de fichiers Excel directement sur le disque peut ne pas être idéal pour des raisons de sécurité ou de performances. L'utilisation de MemoryStream vous permet de générer des fichiers Excel en mémoire et de les livrer directement aux clients pour téléchargement. Spire.XLS for .NET prend également en charge le chargement et l'enregistrement de classeurs via MemoryStream, ce qui facilite la gestion des fichiers Excel entièrement en mémoire.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// Exemple : envoyer des octets au client pour téléchargement en ASP.NET
// Response.BinaryWrite(bytes);
}
Cette approche est particulièrement utile pour les services ASP.NET, Web API ou cloud, où vous souhaitez servir des fichiers Excel de manière dynamique sans créer de fichiers temporaires sur le serveur.
Ouvrir et ré-enregistrer des fichiers Excel en C#
Dans de nombreuses applications, vous devrez peut-être charger un classeur Excel existant, appliquer des mises à jour ou des modifications, puis le ré-enregistrer sur le disque ou le convertir dans un format différent. Ceci est courant lors de la mise à jour de rapports, de la modification de données exportées ou de l'automatisation des flux de travail de fichiers Excel.
Exemple : Ouvrir et mettre à jour un fichier Excel
Le code C# suivant charge le classeur précédent, met à jour la première cellule et enregistre les modifications :
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // Mettre à jour la valeur de la cellule
sheet.Range["A1"].AutoFitColumns(); // Ajuster automatiquement la largeur de la colonne
// Enregistrer le classeur mis à jour
workbook.Save(); // Enregistre dans le fichier d'origine
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // Enregistrer comme nouveau fichier
La capture d'écran ci-dessous montre la feuille Excel mise à jour après modification et enregistrement du fichier :

Vous pouvez également consulter le guide détaillé sur l'édition de fichiers Excel en C# pour des scénarios plus avancés.
Meilleures pratiques lors de l'enregistrement de fichiers Excel
-
Éviter l'écrasement de fichiers
Vérifiez si le fichier cible existe avant d'enregistrer pour éviter toute perte de données accidentelle.
-
Gérer correctement les autorisations et les chemins
Assurez-vous que votre application dispose des autorisations d'écriture sur le dossier cible, en particulier dans les environnements Web ou cloud.
-
Choisir le bon format
Utilisez XLSX pour une compatibilité moderne, CSV pour l'échange de données et PDF pour l'impression ou le partage de rapports.
Conclusion
L'enregistrement de fichiers Excel en C# couvre un large éventail d'opérations, de l'écriture d'ensembles de données structurés à l'exportation vers différents formats de feuille de calcul, en passant par la conversion en PDF/HTML et la gestion des flux de fichiers dans les applications Web.
Avec la flexibilité offerte par des bibliothèques telles que Spire.XLS for .NET, les développeurs peuvent mettre en œuvre facilement de puissants flux de travail d'automatisation Excel.
FAQ
Q1 : Comment enregistrer un fichier Excel en C# ?
Utilisez SaveToFile() avec la ExcelVersion ou le FileFormat approprié :
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
Q2 : Comment ouvrir et modifier un fichier Excel existant ?
Chargez le classeur à l'aide de LoadFromFile(), apportez des modifications, puis enregistrez :
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
Q3 : Comment enregistrer en CSV ou PDF ?
Spécifiez le FileFormat souhaité dans SaveToFile() :
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
Q4 : Puis-je enregistrer Excel en mémoire au lieu du disque ?
Oui. Utilisez SaveToStream() pour écrire dans un MemoryStream, ce qui est utile dans les applications Web ou cloud :
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
Voir aussi
C# Guardar archivo de Excel — Guardar Excel como XLSX, PDF y más
Tabla de Contenidos

Guardar archivos de Excel en C# es una tarea común en muchas aplicaciones .NET, especially when generating reports, exporting analytical data, or automating system logs. Ya sea que esté trabajando con resúmenes financieros o datos de operaciones diarias, poder crear y guardar archivos de Excel mediante programación puede mejorar significativamente la eficiencia y la precisión.
En C#, los desarrolladores pueden manejar archivos de Excel de múltiples maneras: creando nuevos libros de trabajo, escribiendo datos y guardándolos en varios formatos como XLSX, CSV o PDF. Con la ayuda de bibliotecas de Excel dedicadas, estas operaciones se pueden automatizar de manera eficiente sin depender de Microsoft Excel o de una intervención manual.
En este artículo, exploraremos cómo:
- Preparar su entorno de desarrollo
- Guardar datos de DataTable o DataGridView en Excel
- Guardar archivos de Excel en diferentes formatos de hoja de cálculo (CSV, XLS, etc.)
- Exportar archivos de Excel a formatos de documento (PDF, HTML, etc.)
- Guardar libros de Excel en un MemoryStream para aplicaciones web
- Abrir y volver a guardar archivos de Excel existentes
Preparar el Entorno de Desarrollo
Antes de sumergirse en el código, configure su entorno de desarrollo con una biblioteca de Excel que admita la creación, lectura y guardado de archivos en .NET. En este tutorial, usaremos Free Spire.XLS for .NET.
Paso 1: Instalar Spire.XLS a través de NuGet
Install-Package FreeSpire.XLS
Paso 2: Importar el Espacio de Nombres Requerido
using Spire.Xls;
Paso 3: Crear, Escribir y Guardar un Archivo de Excel Simple
// Crear un nuevo libro de trabajo y obtener la primera hoja de cálculo
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// Escribir "¡Hola Mundo!" en la celda A1
sheet.Range["A1"].Text = "¡Hola Mundo!";
// Guardar el libro de trabajo en un archivo
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
Este sencillo ejemplo muestra el flujo de trabajo básico: crear un libro de trabajo, escribir datos en una celda y guardar el archivo.
Después de esto, puede explorar clases y métodos clave como:
- Workbook – representa todo el archivo de Excel.
- Worksheet – representa una sola hoja dentro del libro de trabajo.
- Range – permite el acceso a celdas específicas para entrada, formato o estilo.
- Workbook.SaveToFile() – guarda el libro de trabajo en el disco en el formato de Excel especificado.
Guardar Datos en un Archivo de Excel en C#
Guardar datos estructurados como DataTable o DataGridView en un archivo de Excel es una de las tareas más prácticas en el desarrollo de C#. Ya sea que su aplicación produzca resultados de base de datos, contenido de cuadrícula de interfaz de usuario o informes automatizados, exportar estos conjuntos de datos a Excel proporciona una mejor legibilidad y compatibilidad.
Ejemplo 1: Guardar DataTable en Excel
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// Agregar filas de muestra
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// Insertar el DataTable en la hoja de cálculo
sheet.InsertDataTable(table, true, 1, 1);
// Aplicar formatos incorporados
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// Guardar en Excel
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
Cómo funciona:
- InsertDataTable() inserta datos a partir de una celda específica.
- El argumento true incluye los encabezados de las columnas.
- SaveToFile() guarda el libro de trabajo en el disco; el segundo parámetro especifica la versión del formato de Excel.
- FileFormat.Version2016 especifica la versión del formato de Excel.
A continuación se muestra una salida de ejemplo que muestra cómo se ve el DataTable exportado en Excel:

Ejemplo 2: Guardar DataGridView en Excel
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
Consejo: Antes de guardar, asegúrese de que el origen de datos de su DataGridView se convierta correctamente a un DataTable. Esto garantiza que la estructura exportada coincida con el diseño de la cuadrícula de la interfaz de usuario.
Si desea aprender a crear archivos de Excel con más tipos de datos, formato y otros elementos, puede explorar el artículo Cómo Crear Archivos de Excel en C#.
Guardar Archivo de Excel como CSV o XLS en C#
Diferentes sistemas y plataformas requieren diferentes formatos de hoja de cálculo. Si bien XLSX es ahora el estándar, CSV, XLS y otros formatos siguen siendo comunes en entornos empresariales. Exportar a diferentes formatos permite que los datos de Excel se compartan, procesen o importen por diversas aplicaciones.
Ejemplo 1: Guardar Excel como CSV
CSV (Valores Separados por Comas) es un formato simple basado en texto ideal para intercambiar datos con bases de datos, aplicaciones web u otros sistemas que admiten archivos de texto sin formato.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
Ejemplo 2: Guardar Excel como XLS (Formato Heredado)
XLS (formato Excel 97–2003) es un formato binario heredado que todavía se usa en sistemas o aplicaciones más antiguos que no admiten XLSX. Guardar en XLS garantiza la compatibilidad con los flujos de trabajo empresariales heredados.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
Formatos de Hoja de Cálculo Adicionales Compatibles
Además de los formatos CSV, XLS y XLSX de uso común, la biblioteca también admite varios otros formatos de hoja de cálculo y plantilla. La siguiente tabla enumera estos formatos junto con sus valores de enumeración FileFormat correspondientes para una fácil referencia al guardar archivos mediante programación.
| Formato | Descripción | Enumeración Correspondiente (FileFormat) |
|---|---|---|
| ODS | Hoja de Cálculo OpenDocument | FileFormat.ODS |
| XLSM | Libro de Excel habilitado para macros | FileFormat.Xlsm |
| XLSB | Libro de Excel binario | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Plantilla de Excel 97–2003 | FileFormat.XLT |
| XLTX | Plantilla XML abierta de Excel | FileFormat.XLTX |
| XLTM | Plantilla de Excel habilitada para macros | FileFormat.XLTM |
Estos formatos adicionales son útiles para organizaciones que trabajan con sistemas heredados, estándares de documentos abiertos o flujos de trabajo de automatización basados en macros/plantillas.
Guardar Excel como PDF o HTML en C#
En muchos casos, los archivos de Excel deben convertirse a formatos de documento o web para facilitar su publicación, impresión o uso compartido.
Exportar a PDF es ideal para informes de diseño fijo e impresión, mientras que HTML es adecuado para ver datos de Excel en un navegador web.
Ejemplo 1: Guardar Excel como PDF
El siguiente ejemplo muestra cómo guardar un libro de Excel como un archivo PDF usando C#. Esto es útil para generar informes que conservan el diseño y el formato.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
Aquí hay un ejemplo del archivo PDF generado después de exportarlo desde Excel:

Ejemplo 2: Guardar Excel como HTML
Este ejemplo demuestra cómo guardar un libro de Excel como un archivo HTML, lo que facilita la representación de los datos en un navegador web o la integración con aplicaciones web.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
A continuación se muestra una vista previa del archivo HTML exportado renderizado en un navegador:

Formatos de Documento y Web Adicionales Compatibles
Además de PDF y HTML, la biblioteca admite varios otros formatos amigables para documentos y web. La siguiente tabla muestra estos formatos junto con sus valores de enumeración FileFormat para una fácil referencia.
| Formato | Descripción | Enumeración Correspondiente (FileFormat) |
|---|---|---|
| XML | Datos de Excel exportados como XML | FileFormat.XML |
| Bitmap / Image | Exportar Excel como mapa de bits u otros formatos de imagen | FileFormat.Bitmap |
| XPS | Documento de especificación de papel XML | FileFormat.XPS |
| PostScript | Documento PostScript | FileFormat.PostScript |
| OFD | Formato de documento de diseño fijo abierto | FileFormat.OFD |
| PCL | Archivo de lenguaje de comandos de impresora | FileFormat.PCL |
| Markdown | Formato de archivo Markdown | FileFormat.Markdown |
Estos formatos brindan flexibilidad adicional para distribuir contenido de Excel en diferentes plataformas y flujos de trabajo, ya sea para impresión, publicación web o automatización.
Guardar un Archivo de Excel en MemoryStream en C#
En aplicaciones web o servicios en la nube, guardar archivos de Excel directamente en el disco puede no ser ideal por razones de seguridad o rendimiento. El uso de MemoryStream le permite generar archivos de Excel en la memoria y entregarlos directamente a los clientes para su descarga. Spire.XLS for .NET también admite tanto la carga como el guardado de libros de trabajo a través de MemoryStream, lo que facilita el manejo de archivos de Excel completamente en la memoria.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// Ejemplo: enviar bytes al cliente para su descarga en ASP.NET
// Response.BinaryWrite(bytes);
}
Este enfoque es particularly useful for ASP.NET, Web API, or cloud services, donde desea servir archivos de Excel dinámicamente sin crear archivos temporales en el servidor.
Abrir y Volver a Guardar Archivos de Excel en C#
En muchas aplicaciones, es posible que deba cargar un libro de Excel existente, aplicar actualizaciones o modificaciones y luego guardarlo de nuevo en el disco o convertirlo a un formato diferente. Esto es común al actualizar informes, modificar datos exportados o automatizar flujos de trabajo de archivos de Excel.
Ejemplo: Abrir y Actualizar un Archivo de Excel
El siguiente código C# carga el libro de trabajo anterior, actualiza la primera celda y guarda los cambios:
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // Actualizar el valor de la celda
sheet.Range["A1"].AutoFitColumns(); // Autoajustar el ancho de la columna
// Guardar el libro de trabajo actualizado
workbook.Save(); // Guarda en el archivo original
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // Guardar como archivo nuevo
La siguiente captura de pantalla muestra la hoja de Excel actualizada después de modificar y guardar el archivo:

También puede consultar la guía detallada sobre cómo editar archivos de Excel usando C# para escenarios más avanzados.
Mejores Prácticas al Guardar Archivos de Excel
-
Evitar Sobrescribir Archivos
Verifique si el archivo de destino existe antes de guardar para evitar la pérdida accidental de datos.
-
Manejar Permisos y Rutas Correctamente
Asegúrese de que su aplicación tenga acceso de escritura a la carpeta de destino, especialmente en entornos web o en la nube.
-
Elegir el Formato Correcto
Use XLSX para compatibilidad moderna, CSV para intercambio de datos y PDF para imprimir o compartir informes.
Conclusión
Guardar archivos de Excel en C# cubre una amplia gama de operaciones, desde escribir conjuntos de datos estructurados, exportar a diferentes formatos de hoja de cálculo, convertir a PDF/HTML, hasta manejar flujos de archivos en aplicaciones web.
Con la flexibilidad que ofrecen bibliotecas como Spire.XLS for .NET, los desarrolladores pueden implementar potentes flujos de trabajo de automatización de Excel con facilidad.
Preguntas Frecuentes
P1: ¿Cómo guardo un archivo de Excel en C#?
Use SaveToFile() con la ExcelVersion o FileFormat apropiada:
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
P2: ¿Cómo abro y modifico un archivo de Excel existente?
Cargue el libro de trabajo usando LoadFromFile(), realice cambios y luego guarde:
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
P3: ¿Cómo guardo como CSV o PDF?
Especifique el FileFormat deseado en SaveToFile():
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
P4: ¿Puedo guardar Excel en la memoria en lugar del disco?
Sí. Use SaveToStream() para enviar la salida a un MemoryStream, útil en aplicaciones web o en la nube:
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
Ver También
C# Excel-Datei speichern – Excel in XLSX, PDF und mehr speichern

Das Speichern von Excel-Dateien in C# ist eine häufige Aufgabe in vielen .NET-Anwendungen, insbesondere beim Erstellen von Berichten, Exportieren von Analysedaten oder Automatisieren von Systemprotokollen. Ob Sie mit Finanzzusammenfassungen oder täglichen Betriebsdaten arbeiten, die Fähigkeit, Excel-Dateien programmgesteuert zu erstellen und zu speichern, kann die Effizienz und Genauigkeit erheblich verbessern.
In C# können Entwickler Excel-Dateien auf vielfältige Weise handhaben – neue Arbeitsmappen erstellen, Daten schreiben und sie in verschiedenen Formaten wie XLSX, CSV oder PDF speichern. Mit Hilfe dedizierter Excel-Bibliotheken können diese Vorgänge effizient automatisiert werden, ohne auf Microsoft Excel oder manuelle Eingriffe angewiesen zu sein.
In diesem Artikel werden wir untersuchen, wie Sie:
- Ihre Entwicklungsumgebung vorbereiten
- DataTable- oder DataGridView-Daten in Excel speichern
- Excel-Dateien in verschiedenen Tabellenkalkulationsformaten speichern (CSV, XLS usw.)
- Excel-Dateien in Dokumentformate exportieren (PDF, HTML usw.)
- Excel-Arbeitsmappen in einem MemoryStream speichern für Web-Apps
- Bestehende Excel-Dateien öffnen und erneut speichern
Die Entwicklungsumgebung vorbereiten
Bevor Sie in den Code eintauchen, richten Sie Ihre Entwicklungsumgebung mit einer Excel-Bibliothek ein, die das Erstellen, Lesen und Speichern von Dateien in .NET unterstützt. In diesem Tutorial verwenden wir Kostenloses Spire.XLS für .NET.
Schritt 1: Spire.XLS über NuGet installieren
Install-Package FreeSpire.XLS
Schritt 2: Den erforderlichen Namespace importieren
using Spire.Xls;
Schritt 3: Eine einfache Excel-Datei erstellen, beschreiben und speichern
// Eine neue Arbeitsmappe erstellen und das erste Arbeitsblatt abrufen
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// "Hallo Welt!" in Zelle A1 schreiben
sheet.Range["A1"].Text = "Hallo Welt!";
// Die Arbeitsmappe in einer Datei speichern
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
Dieses einfache Beispiel zeigt den grundlegenden Arbeitsablauf: Erstellen einer Arbeitsmappe, Schreiben von Daten in eine Zelle und Speichern der Datei.
Danach können Sie wichtige Klassen und Methoden wie zum Beispiel erkunden:
- Workbook – repräsentiert die gesamte Excel-Datei.
- Worksheet – repräsentiert ein einzelnes Blatt innerhalb der Arbeitsmappe.
- Range – ermöglicht den Zugriff auf bestimmte Zellen zur Eingabe, Formatierung oder Gestaltung.
- Workbook.SaveToFile() – speichert die Arbeitsmappe im angegebenen Excel-Format auf der Festplatte.
Daten in einer Excel-Datei in C# speichern
Das Speichern strukturierter Daten wie DataTable oder DataGridView in eine Excel-Datei ist eine der praktischsten Aufgaben in der C#-Entwicklung. Ob Ihre Anwendung Datenbankergebnisse, Inhalte von UI-Gittern oder automatisierte Berichte erzeugt, der Export dieser Datensätze nach Excel sorgt für bessere Lesbarkeit und Kompatibilität.
Beispiel 1: DataTable in Excel speichern
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// Beispielzeilen hinzufügen
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// Die DataTable in das Arbeitsblatt einfügen
sheet.InsertDataTable(table, true, 1, 1);
// Integrierte Formate anwenden
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// In Excel speichern
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
Wie es funktioniert:
- InsertDataTable() fügt Daten ab einer bestimmten Zelle ein.
- Das true-Argument schließt Spaltenüberschriften ein.
- SaveToFile() speichert die Arbeitsmappe auf der Festplatte; der zweite Parameter gibt die Version des Excel-Formats an.
- FileFormat.Version2016 gibt die Version des Excel-Formats an.
Unten sehen Sie eine Beispielausgabe, die zeigt, wie die exportierte DataTable in Excel aussieht:

Beispiel 2: DataGridView in Excel speichern
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
Tipp: Stellen Sie vor dem Speichern sicher, dass die Datenquelle Ihres DataGridView ordnungsgemäß in eine DataTable umgewandelt wird. Dadurch wird sichergestellt, dass die exportierte Struktur dem Layout des UI-Gitters entspricht.
Wenn Sie lernen möchten, wie Sie Excel-Dateien mit mehr Datentypen, Formatierungen und anderen Elementen erstellen, können Sie den Artikel Wie man Excel-Dateien in C# erstellt erkunden.
Excel-Datei als CSV oder XLS in C# speichern
Unterschiedliche Systeme und Plattformen erfordern unterschiedliche Tabellenkalkulationsformate. Während XLSX mittlerweile der Standard ist, bleiben CSV, XLS und andere Formate in Unternehmensumgebungen weiterhin üblich. Der Export in verschiedene Formate ermöglicht es, Excel-Daten von verschiedenen Anwendungen gemeinsam zu nutzen, zu verarbeiten oder zu importieren.
Beispiel 1: Excel als CSV speichern
CSV (Comma-Separated Values) ist ein einfaches textbasiertes Format, das sich ideal für den Datenaustausch mit Datenbanken, Webanwendungen oder anderen Systemen eignet, die reine Textdateien unterstützen.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
Beispiel 2: Excel als XLS (Legacy-Format) speichern
XLS (Excel 97–2003-Format) ist ein altes Binärformat, das immer noch in älteren Systemen oder Anwendungen verwendet wird, die XLSX nicht unterstützen. Das Speichern im XLS-Format gewährleistet die Kompatibilität mit älteren Unternehmens-Workflows.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
Zusätzlich unterstützte Tabellenkalkulationsformate
Zusätzlich zu den häufig verwendeten Formaten CSV, XLS und XLSX unterstützt die Bibliothek auch mehrere andere Tabellenkalkulations- und Vorlagenformate. Die folgende Tabelle listet diese Formate zusammen mit ihren entsprechenden FileFormat-Enumeration-Werten auf, um das programmgesteuerte Speichern von Dateien zu erleichtern.
| Format | Beschreibung | Entsprechende Enum (FileFormat) |
|---|---|---|
| ODS | OpenDocument-Tabellenkalkulation | FileFormat.ODS |
| XLSM | Excel-Arbeitsmappe mit Makros | FileFormat.Xlsm |
| XLSB | Binäre Excel-Arbeitsmappe | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Excel 97–2003-Vorlage | FileFormat.XLT |
| XLTX | Excel Open XML-Vorlage | FileFormat.XLTX |
| XLTM | Excel-Vorlage mit Makros | FileFormat.XLTM |
Diese zusätzlichen Formate sind nützlich für Organisationen, die mit Altsystemen, offenen Dokumentenstandards oder makro-/vorlagenbasierten Automatisierungs-Workflows arbeiten.
Excel als PDF oder HTML in C# speichern
In vielen Fällen müssen Excel-Dateien zur einfacheren Veröffentlichung, zum Drucken oder zur gemeinsamen Nutzung in Dokument- oder Webformate konvertiert werden.
Der Export nach PDF ist ideal für Berichte mit festem Layout und zum Drucken, während HTML sich zum Anzeigen von Excel-Daten in einem Webbrowser eignet.
Beispiel 1: Excel als PDF speichern
Das folgende Beispiel zeigt, wie man eine Excel-Arbeitsmappe mit C# als PDF-Datei speichert. Dies ist nützlich, um Berichte zu erstellen, die Layout und Formatierung beibehalten.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
Hier ist ein Beispiel der generierten PDF-Datei nach dem Export aus Excel:

Beispiel 2: Excel als HTML speichern
Dieses Beispiel zeigt, wie man eine Excel-Arbeitsmappe als HTML-Datei speichert, was es einfach macht, die Daten in einem Webbrowser darzustellen oder in Webanwendungen zu integrieren.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
Unten sehen Sie eine Vorschau der exportierten HTML-Datei, wie sie in einem Browser dargestellt wird:

Zusätzlich unterstützte Dokument- & Web-Formate
Zusätzlich zu PDF und HTML unterstützt die Bibliothek mehrere andere dokumenten- und webfreundliche Formate. Die folgende Tabelle zeigt diese Formate zusammen mit ihren FileFormat-Enumeration-Werten zur einfachen Referenz.
| Format | Beschreibung | Entsprechende Enum (FileFormat) |
|---|---|---|
| XML | Als XML exportierte Excel-Daten | FileFormat.XML |
| Bitmap / Bild | Excel als Bitmap oder andere Bildformate exportieren | FileFormat.Bitmap |
| XPS | XML Paper Specification-Dokument | FileFormat.XPS |
| PostScript | PostScript-Dokument | FileFormat.PostScript |
| OFD | Open Fixed-layout Document-Format | FileFormat.OFD |
| PCL | Printer Command Language-Datei | FileFormat.PCL |
| Markdown | Markdown-Dateiformat | FileFormat.Markdown |
Diese Formate bieten zusätzliche Flexibilität für die Verteilung von Excel-Inhalten auf verschiedenen Plattformen und in unterschiedlichen Arbeitsabläufen, sei es für den Druck, die Web-Veröffentlichung oder die Automatisierung.
Eine Excel-Datei in MemoryStream in C# speichern
In Webanwendungen oder Cloud-Diensten ist das direkte Speichern von Excel-Dateien auf der Festplatte aus Sicherheits- oder Leistungsgründen möglicherweise nicht ideal. Die Verwendung von MemoryStream ermöglicht es Ihnen, Excel-Dateien im Speicher zu erstellen und sie direkt an Clients zum Download zu liefern. Spire.XLS für .NET unterstützt auch sowohl das Laden und Speichern von Arbeitsmappen über MemoryStream, was die Handhabung von Excel-Dateien vollständig im Speicher erleichtert.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// Beispiel: Bytes zum Herunterladen an den Client in ASP.NET senden
// Response.BinaryWrite(bytes);
}
Dieser Ansatz ist besonders nützlich für ASP.NET, Web API oder Cloud-Dienste, bei denen Sie Excel-Dateien dynamisch bereitstellen möchten, ohne temporäre Dateien auf dem Server zu erstellen.
Excel-Dateien in C# öffnen und erneut speichern
In vielen Anwendungen müssen Sie möglicherweise eine bestehende Excel-Arbeitsmappe laden, Aktualisierungen oder Änderungen anwenden und sie dann wieder auf der Festplatte speichern oder in ein anderes Format konvertieren. Dies ist üblich beim Aktualisieren von Berichten, Ändern exportierter Daten oder Automatisieren von Excel-Datei-Workflows.
Beispiel: Eine Excel-Datei öffnen und aktualisieren
Der folgende C#-Code lädt die vorherige Arbeitsmappe, aktualisiert die erste Zelle und speichert die Änderungen:
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // Den Zellwert aktualisieren
sheet.Range["A1"].AutoFitColumns(); // Die Spaltenbreite automatisch anpassen
// Die aktualisierte Arbeitsmappe speichern
workbook.Save(); // Speichert in der Originaldatei
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // Als neue Datei speichern
Der folgende Screenshot zeigt das aktualisierte Excel-Blatt nach dem Ändern und Speichern der Datei:

Sie können sich auch die detaillierte Anleitung zum Bearbeiten von Excel-Dateien mit C# für fortgeschrittenere Szenarien ansehen.
Beste Praktiken beim Speichern von Excel-Dateien
-
Dateiüberschreibungen vermeiden
Überprüfen Sie vor dem Speichern, ob die Zieldatei vorhanden ist, um versehentlichen Datenverlust zu vermeiden.
-
Berechtigungen und Pfade korrekt behandeln
Stellen Sie sicher, dass Ihre Anwendung Schreibzugriff auf den Zielordner hat, insbesondere in Web- oder Cloud-Umgebungen.
-
Das richtige Format wählen
Verwenden Sie XLSX für moderne Kompatibilität, CSV für den Datenaustausch und PDF zum Drucken oder Teilen von Berichten.
Fazit
Das Speichern von Excel-Dateien in C# deckt eine breite Palette von Operationen ab – vom Schreiben strukturierter Datensätze über den Export in verschiedene Tabellenkalkulationsformate und die Konvertierung in PDF/HTML bis hin zur Handhabung von Dateiströmen in Webanwendungen.
Mit der Flexibilität, die Bibliotheken wie Spire.XLS für .NET bieten, können Entwickler leistungsstarke Excel-Automatisierungs-Workflows mühelos implementieren.
FAQ
F1: Wie speichere ich eine Excel-Datei in C#?
Verwenden Sie SaveToFile() mit der entsprechenden ExcelVersion oder FileFormat:
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
F2: Wie öffne und ändere ich eine vorhandene Excel-Datei?
Laden Sie die Arbeitsmappe mit LoadFromFile(), nehmen Sie Änderungen vor und speichern Sie dann:
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
F3: Wie speichere ich als CSV oder PDF?
Geben Sie das gewünschte FileFormat in SaveToFile() an:
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
F4: Kann ich Excel im Speicher anstatt auf der Festplatte speichern?
Ja. Verwenden Sie SaveToStream(), um in einen MemoryStream auszugeben, was in Web- oder Cloud-Anwendungen nützlich ist:
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
Siehe auch
C# Сохранить файл Excel — Сохранить Excel в XLSX, PDF и другие форматы

Сохранение файлов Excel в C# — это обычная задача во многих .NET-приложениях, особенно при создании отчетов, экспорте аналитических данных или автоматизации системных журналов. Независимо от того, работаете ли вы с финансовыми сводками или данными о ежедневных операциях, возможность программно создавать и сохранять файлы Excel может значительно повысить эффективность и точность.
В C# разработчики могут работать с файлами Excel несколькими способами: создавать новые книги, записывать данные и сохранять их в различных форматах, таких как XLSX, CSV или PDF. С помощью специализированных библиотек для Excel эти операции можно эффективно автоматизировать, не полагаясь на Microsoft Excel или ручное вмешательство.
В этой статье мы рассмотрим, как:
- Подготовить среду разработки
- Сохранять данные из DataTable или DataGridView в Excel
- Сохранять файлы Excel в различных форматах электронных таблиц (CSV, XLS и т. д.)
- Экспортировать файлы Excel в форматы документов (PDF, HTML и т. д.)
- Сохранять книги Excel в MemoryStream для веб-приложений
- Открывать и повторно сохранять существующие файлы Excel
Подготовьте среду разработки
Прежде чем углубляться в код, настройте свою среду разработки с помощью библиотеки Excel, которая поддерживает создание, чтение и сохранение файлов в .NET. В этом руководстве мы будем использовать Free Spire.XLS для .NET.
Шаг 1: Установите Spire.XLS через NuGet
Install-Package FreeSpire.XLS
Шаг 2: Импортируйте необходимое пространство имен
using Spire.Xls;
Шаг 3: Создайте, запишите и сохраните простой файл Excel
// Создать новую книгу и получить первый лист
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
// Записать "Hello World!" в ячейку A1
sheet.Range["A1"].Text = "Hello World!";
// Сохранить книгу в файл
workbook.SaveToFile("HelloWorld.xlsx", ExcelVersion.Version2016);
Этот простой пример показывает основной рабочий процесс: создание книги, запись данных в ячейку и сохранение файла.
После этого вы можете изучить ключевые классы и методы, такие как:
- Workbook – представляет весь файл Excel.
- Worksheet – представляет один лист в книге.
- Range – позволяет получать доступ к определенным ячейкам для ввода, форматирования или стилизации.
- Workbook.SaveToFile() – сохраняет книгу на диск в указанном формате Excel.
Сохранение данных в файл Excel на C#
Сохранение структурированных данных, таких как DataTable или DataGridView, в файл Excel — одна из самых практичных задач в разработке на C#. Независимо от того, создает ли ваше приложение результаты базы данных, содержимое сетки пользовательского интерфейса или автоматизированные отчеты, экспорт этих наборов данных в Excel обеспечивает лучшую читаемость и совместимость.
Пример 1: Сохранение DataTable в Excel
using Spire.Xls;
using System.Data;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "EmployeeData";
DataTable table = new DataTable();
table.Columns.Add("EmployeeID");
table.Columns.Add("FullName");
table.Columns.Add("Department");
table.Columns.Add("HireDate");
table.Columns.Add("Salary");
// Add sample rows
table.Rows.Add("E001", "Alice Johnson", "Finance", "2020-03-12", "7500");
table.Rows.Add("E002", "Bob Williams", "Human Resources", "2019-08-05", "6800");
table.Rows.Add("E003", "Catherine Lee", "IT", "2021-01-20", "8200");
table.Rows.Add("E004", "David Smith", "Marketing", "2018-11-30", "7100");
table.Rows.Add("E005", "Emily Davis", "Sales", "2022-06-15", "6900");
// Вставить DataTable в лист
sheet.InsertDataTable(table, true, 1, 1);
// Применить встроенные форматы
sheet.AllocatedRange.Rows[0].BuiltInStyle = BuiltInStyles.Heading1;
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.AllocatedRange.Rows[i].BuiltInStyle = BuiltInStyles.Accent1;
}
sheet.AllocatedRange.AutoFitColumns();
sheet.AllocatedRange.AutoFitRows();
// Сохранить в Excel
workbook.SaveToFile("EmployeeDataExport.xlsx", FileFormat.Version2016);
Как это работает:
- InsertDataTable() вставляет данные, начиная с определенной ячейки.
- Аргумент true включает заголовки столбцов.
- SaveToFile() сохраняет книгу на диск; второй параметр указывает версию формата Excel.
- FileFormat.Version2016 указывает версию формата Excel.
Ниже приведен пример вывода, показывающий, как экспортированный DataTable выглядит в Excel:

Пример 2: Сохранение DataGridView в Excel
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.InsertDataTable(((DataTable)dataGridView1.DataSource), true, 1, 1);
workbook.SaveToFile("GridViewExport.xlsx", FileFormat.Version2016);
Совет: Перед сохранением убедитесь, что источник данных вашего DataGridView правильно приведен к DataTable. Это гарантирует, что экспортированная структура будет соответствовать макету сетки пользовательского интерфейса.
Если вы хотите узнать, как создавать файлы Excel с большим количеством типов данных, форматированием и другими элементами, вы можете изучить статью Как создавать файлы Excel на C#.
Сохранение файла Excel в формате CSV или XLS на C#
Различные системы и платформы требуют разных форматов электронных таблиц. Хотя XLSX сейчас является стандартом, CSV, XLS и другие форматы остаются распространенными в корпоративных средах. Экспорт в различные форматы позволяет обмениваться данными Excel, обрабатывать их или импортировать в различные приложения.
Пример 1: Сохранение Excel в формате CSV
CSV (значения, разделенные запятыми) — это простой текстовый формат, идеально подходящий для обмена данными с базами данных, веб-приложениями или другими системами, поддерживающими обычные текстовые файлы.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
Пример 2: Сохранение Excel в формате XLS (устаревший формат)
XLS (формат Excel 97–2003) — это устаревший двоичный формат, который до сих пор используется в старых системах или приложениях, не поддерживающих XLSX. Сохранение в XLS обеспечивает совместимость с устаревшими корпоративными рабочими процессами.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("Report_legacy.xls", ExcelVersion.Version97to2003);
Дополнительные поддерживаемые форматы электронных таблиц
В дополнение к часто используемым форматам CSV, XLS и XLSX, библиотека также поддерживает несколько других форматов электронных таблиц и шаблонов. В таблице ниже перечислены эти форматы вместе с соответствующими им значениями перечисления FileFormat для удобства при программном сохранении файлов.
| Формат | Описание | Соответствующий Enum (FileFormat) |
|---|---|---|
| ODS | Электронная таблица OpenDocument | FileFormat.ODS |
| XLSM | Книга Excel с поддержкой макросов | FileFormat.Xlsm |
| XLSB | Двоичная книга Excel | FileFormat.Xlsb2007 / FileFormat.Xlsb2010 |
| XLT | Шаблон Excel 97–2003 | FileFormat.XLT |
| XLTX | Шаблон Excel Open XML | FileFormat.XLTX |
| XLTM | Шаблон Excel с поддержкой макросов | FileFormat.XLTM |
Эти дополнительные форматы полезны для организаций, которые работают с устаревшими системами, стандартами открытых документов или рабочими процессами автоматизации на основе макросов/шаблонов.
Сохранение Excel в формате PDF или HTML на C#
Во многих случаях файлы Excel необходимо преобразовывать в форматы документов или веб-форматы для упрощения публикации, печати или обмена.
Экспорт в PDF идеально подходит для отчетов с фиксированным макетом и печати, в то время как HTML подходит для просмотра данных Excel в веб-браузере.
Пример 1: Сохранение Excel в формате PDF
В следующем примере показано, как сохранить книгу Excel в виде файла PDF с помощью C#. Это полезно для создания отчетов, сохраняющих макет и форматирование.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.pdf", FileFormat.PDF);
Вот пример сгенерированного PDF-файла после экспорта из Excel:

Пример 2: Сохранение Excel в формате HTML
Этот пример демонстрирует, как сохранить книгу Excel в виде HTML-файла, что упрощает отображение данных в веб-браузере или интеграцию с веб-приложениями.
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
workbook.SaveToFile("EmployeeDataExport.html", FileFormat.HTML);
Ниже приведен предварительный просмотр экспортированного HTML-файла, отображенного в браузере:

Дополнительные поддерживаемые форматы документов и веб-форматы
Помимо PDF и HTML, библиотека поддерживает несколько других форматов, удобных для документов и веба. В таблице ниже показаны эти форматы вместе с их значениями перечисления FileFormat для удобства.
| Формат | Описание | Соответствующий Enum (FileFormat) |
|---|---|---|
| XML | Данные Excel, экспортированные в формате XML | FileFormat.XML |
| Растровое изображение / Изображение | Экспорт Excel в растровое изображение или другие форматы изображений | FileFormat.Bitmap |
| XPS | Документ XML Paper Specification | FileFormat.XPS |
| PostScript | Документ PostScript | FileFormat.PostScript |
| OFD | Формат документа с фиксированным макетом Open Fixed-layout | FileFormat.OFD |
| PCL | Файл языка команд принтера | FileFormat.PCL |
| Markdown | Формат файла Markdown | FileFormat.Markdown |
Эти форматы обеспечивают дополнительную гибкость для распространения содержимого Excel на различных платформах и в рабочих процессах, будь то для печати, веб-публикации или автоматизации.
Сохранение файла Excel в MemoryStream на C#
В веб-приложениях или облачных сервисах сохранение файлов Excel непосредственно на диск может быть нецелесообразным по соображениям безопасности или производительности. Использование MemoryStream позволяет создавать файлы Excel в памяти и доставлять их непосредственно клиентам для загрузки. Spire.XLS для .NET также поддерживает как загрузку, так и сохранение книг через MemoryStream, что упрощает обработку файлов Excel полностью в памяти.
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Export to Stream";
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
// Пример: отправить байты клиенту для загрузки в ASP.NET
// Response.BinaryWrite(bytes);
}
Этот подход особенно полезен для ASP.NET, Web API или облачных сервисов, где вы хотите динамически обслуживать файлы Excel, не создавая временных файлов на сервере.
Открытие и повторное сохранение файлов Excel на C#
Во многих приложениях вам может понадобиться загрузить существующую книгу Excel, применить обновления или изменения, а затем сохранить ее обратно на диск или преобразовать в другой формат. Это часто встречается при обновлении отчетов, изменении экспортированных данных или автоматизации рабочих процессов с файлами Excel.
Пример: открытие и обновление файла Excel
Следующий код C# загружает предыдущую книгу, обновляет первую ячейку и сохраняет изменения:
Workbook workbook = new Workbook();
workbook.LoadFromFile("EmployeeDataExport.xlsx");
Worksheet sheet = workbook.Worksheets[0];
sheet.Range["A1"].Text = "Updated Content"; // Обновить значение ячейки
sheet.Range["A1"].AutoFitColumns(); // Автоподбор ширины столбца
// Сохранить обновленную книгу
workbook.Save(); // Сохраняет в исходный файл
workbook.SaveToFile("UpdatedCopy.xlsx", ExcelVersion.Version2016); // Сохранить как новый файл
На скриншоте ниже показан обновленный лист Excel после изменения и сохранения файла:

Вы также можете ознакомиться с подробным руководством по редактированию файлов Excel с использованием C# для более сложных сценариев.
Лучшие практики при сохранении файлов Excel
-
Избегайте перезаписи файлов
Проверяйте, существует ли целевой файл, перед сохранением, чтобы предотвратить случайную потерю данных.
-
Правильно управляйте разрешениями и путями
Убедитесь, что у вашего приложения есть права на запись в целевую папку, особенно в веб- или облачных средах.
-
Выберите правильный формат
Используйте XLSX для современной совместимости, CSV для обмена данными и PDF для печати или обмена отчетами.
Заключение
Сохранение файлов Excel в C# охватывает широкий спектр операций — от записи структурированных наборов данных, экспорта в различные форматы электронных таблиц, преобразования в PDF/HTML до обработки файловых потоков в веб-приложениях.
Благодаря гибкости, предлагаемой такими библиотеками, как Spire.XLS для .NET, разработчики могут с легкостью реализовывать мощные рабочие процессы автоматизации Excel.
Часто задаваемые вопросы
В1: Как сохранить файл Excel на C#?
Используйте SaveToFile() с соответствующим ExcelVersion или FileFormat:
workbook.SaveToFile("Report.xlsx", ExcelVersion.Version2016);
В2: Как открыть и изменить существующий файл Excel?
Загрузите книгу с помощью LoadFromFile(), внесите изменения, затем сохраните:
Workbook workbook = new Workbook();
workbook.LoadFromFile("ExistingFile.xlsx");
workbook.Worksheets[0].Range["A1"].Text = "Updated Content";
workbook.SaveToFile("UpdatedFile.xlsx", ExcelVersion.Version2016);
В3: Как сохранить в формате CSV или PDF?
Укажите желаемый FileFormat в SaveToFile():
workbook.SaveToFile("Report.csv", ",", FileFormat.CSV);
workbook.SaveToFile("Report.pdf", FileFormat.PDF);
В4: Могу ли я сохранить Excel в память, а не на диск?
Да. Используйте SaveToStream() для вывода в MemoryStream, что полезно в веб- или облачных приложениях:
using (MemoryStream stream = new MemoryStream())
{
workbook.SaveToStream(stream, ExcelVersion.Version2016);
byte[] bytes = stream.ToArray();
}
Смотрите также
Convertire Excel in XML: strumenti gratuiti + automazione Python

Se lavori con dati che devono essere condivisi tra software, API o siti web, la conversione da Excel a XML è un'abilità fondamentale. XML (Extensible Markup Language) è un formato universale e leggibile dalle macchine, ideale per lo scambio di dati, mentre Excel eccelle nell'organizzazione di fogli di calcolo. Colmare il divario tra i due consente ai tuoi dati di fluire senza interruzioni tra le piattaforme.
Che tu sia un principiante alla ricerca di una soluzione rapida, un analista che garantisce l'integrità dei dati o uno sviluppatore che crea una pipeline automatizzata, questa guida ti illustrerà tre metodi di conversione da Excel a XML efficaci e privi di errori.
- Metodo 1: Conversione manuale da Excel a XML (scheda Sviluppo integrata)
- Metodo 2: Convertitori online gratuiti da Excel a XML
- Metodo 3: Automatizzare la conversione da Excel a XML in Python
Perché convertire Excel in XML?
Il valore principale della conversione da Excel a XML risiede in:
- Compatibilità multipiattaforma: XML funziona con API, piattaforme CMS (WordPress, Shopify), strumenti aziendali (SAP, Salesforce) e linguaggi di programmazione (Python, Java).
- Dati strutturati: XML conserva le righe/colonne di Excel come elementi con tag (ad es.
<prodotto><nome>Laptop</nome><prezzo>999</prezzo></prodotto>), rendendolo facile da analizzare per il software. - Integrità dei dati: XML evita problemi di formattazione che affliggono i file Excel (ad es. formule interrotte, celle unite) quando condivisi tra sistemi.
- Casi d'uso: feed di prodotti per l'e-commerce, esportazioni di dati da API, importazioni di contenuti CMS e integrazione di dati aziendali.
Strutturare i dati di Excel per una conversione di successo
Il primo e più critico passaggio avviene in Excel. Un foglio di origine ben strutturato garantisce una conversione senza problemi.
- Utilizza intestazioni di colonna uniche e brevi (senza spazi/caratteri speciali, ad es. "NomeProdotto" invece di "Nome Prodotto").
- Rimuovi righe/colonne vuote (causano errori di convalida XML).
- Garantisci tipi di dati coerenti (ad es. tutti i prezzi come numeri, date in un formato uniforme).
- Evita celle unite o formule complesse; utilizza invece dati grezzi.
Metodo 1: Conversione manuale da Excel a XML (scheda Sviluppo integrata)
La scheda Sviluppo integrata di Excel fornisce supporto nativo per le attività XML, rendendola accessibile agli utenti di Excel senza conoscenze di programmazione.
Guida passo passo:
Passaggio 1: prepara i tuoi dati Excel
Struttura i tuoi dati in un formato tabellare chiaro. La prima riga dovrebbe contenere le intestazioni delle colonne, che diventeranno i tuoi tag XML. Per questo esempio, usiamo un semplice elenco di prodotti:

Passaggio 2: crea uno schema XML
Uno schema XML (file .xsd) definisce la struttura del tuo output XML. Specifica quali tag utilizzare e come si relazionano tra loro.
Schema di esempio (salvalo come "products.xsd" sul tuo computer):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="ProductName" type="xs:string"/>
<xs:element name="Category" type="xs:string"/>
<xs:element name="Price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Regola gli attributi `name` in modo che corrispondano alle intestazioni delle colonne di Excel (sensibile alle maiuscole).
- Usa tipi appropriati (ad es. xsd:integer per i numeri, xsd:string per il testo).
Passaggio 3: aggiungi lo schema a Excel
- Apri il tuo file Excel.
- Vai alla scheda Sviluppo. (Se non la vedi, vai su File > Opzioni > Personalizza barra multifunzione, seleziona "Sviluppo" e fai clic su "OK".)
- Nella scheda Sviluppo, fai clic su Origine per aprire il riquadro Origine XML.
- Fai clic su Mappe XML... e poi su Aggiungi....
- Allega il file di schema .xsd che hai creato utilizzando la finestra di dialogo Mappe XML

Passaggio 4: mappa gli elementi XML alle tue celle
- Nel riquadro Origine XML, vedrai i tuoi elementi ("Catalogo", "Prodotto", "ID", ecc.).
- Trascina l'elemento "Prodotto" e rilascialo sulla cella A1. Excel creerà una tabella ben formattata.
- Gli elementi verranno ora mappati. I tuoi dati sono ora pronti per l'esportazione.

Passaggio 5: esporta in XML
- Con i dati mappati selezionati, torna alla scheda Sviluppo.
- Fai clic su Esporta.
- Scegli una posizione e un nome per il tuo nuovo file XML e fai clic su OK.
Il file XML esportato corrisponderà al tuo schema, in questo modo:

Potrebbe piacerti anche: Converti facilmente XLS/XLSX in HTML — Mantieni intatta la formattazione di Excel
Metodo 2: Convertitori online gratuiti da Excel a XML
Se hai bisogno di una conversione rapida e una tantum senza la configurazione tecnica, gli strumenti online sono i tuoi migliori amici.
I migliori strumenti per convertire Excel in XML online (100% gratuiti, senza registrazione):
1. CloudxDocs (il più facile da usare)
- Vai al convertitore CloudxDocs DA EXCEL A XML.
- Carica il tuo file Excel (supporta XLS, XLSX, XLSB).
- Attendi il completamento della conversione e scarica il tuo file XML.
Questo convertitore produce per impostazione predefinita un file Foglio di calcolo XML che preserva la formattazione di Excel.

2. WizlyTools (supporta XML personalizzato)
- Vai al convertitore WizlyTools da Excel a XML.
- Carica un file Excel (.xlsx, .xls).
- Inserisci il nome dell'elemento radice e il nome dell'elemento riga.
- Seleziona una dimensione di rientro per il tuo output XML.
- Fai clic su "Converti in XML" e quindi copia o scarica l'XML risultante
Questo convertitore ti dà un maggiore controllo sulla struttura XML, come la definizione di un elemento radice specifico, un elemento riga e ti consente di visualizzare l'anteprima dell'XML prima di scaricarlo

Nota: evita di caricare dati sensibili (ad es. registri finanziari) su strumenti online. Utilizza metodi manuali per i file riservati.
Metodo 3: Automatizzare la conversione da Excel a XML in Python
Per sviluppatori e professionisti IT che lavorano in Python, Spire.XLS for Python fornisce una soluzione solida e basata su codice per convertire fogli di calcolo Excel in XML senza richiedere l'installazione di Microsoft Excel. Questo è ideale per l'automazione lato server e l'integrazione di applicazioni.
Passaggio 1: installazione
Innanzitutto, è necessario installare la libreria Spire.XLS for Python. È disponibile tramite PyPI.
pip install Spire.XLS
Passaggio 2: scrivi lo script Python
Questo script utilizza Spire.XLS per leggere i dati di Excel, quindi genera XML con i moduli integrati di Python xml.etree.ElementTree (per la struttura) e minidom (per una formattazione gradevole).
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
# Load the Excel file
workbook = Workbook()
workbook.LoadFromFile("Orders.xlsx")
# Get the first worksheet
worksheet = workbook.Worksheets[0]
# Get row and column counts (Spire.XLS uses 1-based indexing)
max_row = worksheet.LastRow
max_col = worksheet.LastColumn
# Check if data exists (headers in row 1, data in row 2+)
if max_row < 2:
raise ValueError("No data found! Ensure headers are in row 1 and data starts in row 2.")
# Create XML root element
root = ET.Element("Info")
# Loop through data rows (skip row 1: headers)
for row in range(2, max_row + 1):
# Create a row element (e.g., <Order>)
row_element = ET.SubElement(root, "Order")
# Loop through columns to get headers and values
for col in range(1, max_col + 1):
# Get header (XML tag)
header = worksheet.Range[1, col].Value
# Get cell value (data for the XML tag)
cell_value = worksheet.Range[row, col].Value
# Create sub-element and add value
ET.SubElement(row_element, header).text = str(cell_value)
# Pretty-print XML (add indentation for readability)
rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent=" ")
# Save to XML file
with open("Orders.xml", 'w', encoding='utf-8') as f:
f.write(pretty_xml)
# Close the workbook
workbook.Dispose()
Spiegazione del codice:
- Carica file Excel: utilizza Spire.XLS per aprire un file Excel e accedere al suo primo foglio di lavoro.
- Definisci intervallo di dati: trova l'ultima riga e colonna con dati (indicizzazione basata su 1 in Spire.XLS) per conoscere i limiti dei dati.
- Crea struttura XML:
- Crea un elemento radice XML
<Info>. - Scorre ogni riga di dati (a partire dalla riga 2), creando un elemento
<Order>per ciascuna. - Per ogni colonna nella riga: utilizza l'intestazione dalla riga 1 come tag XML e il valore della cella come contenuto del tag.
- Crea un elemento radice XML
- Salva XML: formatta l'XML con rientro (per leggibilità) e lo salva in un file XML.
XML di output di esempio

Spire.XLS for Python fornisce anche un metodo diretto SaveAsXml() per convertire Excel in formato Open XML.
Considerazioni finali
La conversione da Excel a XML è un'abilità fondamentale che sblocca il vero potenziale dei tuoi dati, consentendo loro di fluire senza problemi in applicazioni web, file di configurazione e altri sistemi aziendali. Comprendendo i metodi disponibili, dalla potenza controllata delle Mappe XML di Excel alla rapidità degli strumenti online e alla forza industriale dello scripting Python, puoi scegliere lo strumento giusto per ogni lavoro.
Domande frequenti sulla conversione da Excel a XML
D1: Come posso convertire in batch più file Excel in XML contemporaneamente?
La conversione batch consente di risparmiare tempo per più di 10 file: utilizza questi metodi in base al tuo livello di abilità:
- Strumenti online: Zamzar supporta fino a 50 file per batch (carica tutti i file Excel, seleziona "XML" come output e ottieni uno zip di XML).
- Spire.XLS for Python: estendi lo script fornito per scorrere una cartella
import os
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
input_folder = "C:/Excel_Batch"
output_folder = "C:/XML_Batch"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith((".xlsx", ".xls")):
workbook = Workbook()
workbook.LoadFromFile(os.path.join(input_folder, filename))
# Add conversion logic (same as single file) here
workbook.Dispose()
D2: Posso personalizzare la struttura XML (ad es. modificare i tag radice/riga)?
Sì, tutti i metodi supportano la personalizzazione:
- Manuale: modifica il file dello schema XML (.xsd) per modificare i tag radice (ad es.
<Catalogo>) o riga (ad es.<Prodotto>). - Online: strumenti come WizlyTools ti consentono di impostare i nomi degli elementi radice/riga nelle impostazioni.
- Python: modifica le righe ET.Element("NomeRadice") e ET.SubElement(root, "NomeRiga") dello script in base alle tue esigenze.
D3: I miei dati contengono formule. L'output XML conterrà la formula o il valore calcolato?
In quasi tutti i casi, l'esportazione XML conterrà il valore calcolato (il risultato della formula), non la formula stessa. XML è principalmente un formato per rappresentare i dati, non la logica o i calcoli dietro di essi. Il processo di conversione legge i valori visibili delle celle.
D4: Il mio file XML sembra disordinato quando lo apro. Come posso formattarlo correttamente?
L'XML generato da questi metodi è spesso in un formato compresso senza interruzioni di riga o rientri. Questo è ancora un XML valido. Per visualizzarlo in un formato leggibile:
- Apri il file in un browser web moderno (Chrome, Firefox, Edge), che lo formatterà e lo visualizzerà automaticamente in modo ordinato.
- Usa un editor di codice come VS Code, Notepad++ o Sublime Text, che dispongono di formattazione XML integrata o plug-in per re-indentare il codice.
Vedi anche
Converter Excel para XML: ferramentas gratuitas + automação com Python

Se você está trabalhando com dados que precisam ser compartilhados entre softwares, APIs ou sites, converter Excel para XML é uma habilidade crucial. XML (Extensible Markup Language) é um formato universal e legível por máquina, ideal para intercâmbio de dados, enquanto o Excel se destaca na organização de planilhas. Superar a lacuna entre eles permite que seus dados fluam perfeitamente entre plataformas.
Seja você um iniciante em busca de uma solução rápida, um analista garantindo a integridade dos dados ou um desenvolvedor construindo um pipeline automatizado, este guia o guiará por três métodos eficazes e sem erros de conversão de Excel para XML.
- Método 1: Conversão Manual de Excel para XML (Guia de Desenvolvedor Integrada)
- Método 2: Conversores Online Gratuitos de Excel para XML
- Método 3: Automatizar a Conversão de Excel para XML em Python
Por que converter Excel para XML?
O valor principal da conversão de Excel para XML reside em:
- Compatibilidade entre Plataformas: O XML funciona com APIs, plataformas de CMS (WordPress, Shopify), ferramentas empresariais (SAP, Salesforce) e linguagens de programação (Python, Java).
- Dados Estruturados: O XML preserva as linhas/colunas do Excel como elementos marcados (por exemplo,
<produto><nome>Laptop</nome><preco>999</preco></produto>), facilitando a análise por software. - Integridade dos Dados: O XML evita problemas de formatação que afetam os arquivos do Excel (por exemplo, fórmulas quebradas, células mescladas) quando compartilhados entre sistemas.
- Casos de Uso: Feeds de produtos de e-commerce, exportações de dados de API, importações de conteúdo de CMS e integração de dados empresariais.
Estruturando Dados do Excel para uma Conversão Bem-Sucedida
O primeiro e mais crítico passo acontece no Excel. Uma planilha de origem bem estruturada garante uma conversão tranquila.
- Use cabeçalhos de coluna curtos e únicos (sem espaços/caracteres especiais — por exemplo, "NomeProduto" em vez de "Nome do Produto").
- Remova linhas/colunas vazias (elas causam erros de validação XML).
- Garanta tipos de dados consistentes (por exemplo, todos os preços como números, datas em um formato uniforme).
- Evite células mescladas ou fórmulas complexas; use dados brutos em vez disso.
Método 1: Conversão Manual de Excel para XML (Guia de Desenvolvedor Integrada)
A Guia de Desenvolvedor integrada do Excel oferece suporte nativo para tarefas XML, tornando-a acessível a usuários do Excel sem conhecimento de programação.
Guia Passo a Passo:
Passo 1: Prepare Seus Dados do Excel
Estruture seus dados em um formato tabular claro. A primeira linha deve conter os cabeçalhos das colunas, que se tornarão suas tags XML. Para este exemplo, vamos usar uma lista de produtos simples:

Passo 2: Crie um Esquema XML
Um esquema XML (arquivo .xsd) define a estrutura da sua saída XML. Ele especifica quais tags usar e como elas se relacionam.
Exemplo de Esquema (salve como “produtos.xsd” no seu computador):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="ProductName" type="xs:string"/>
<xs:element name="Category" type="xs:string"/>
<xs:element name="Price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Ajuste os atributos de nome para corresponder aos cabeçalhos das colunas do Excel (sensível a maiúsculas e minúsculas).
- Use tipos apropriados (por exemplo, xsd:integer para números, xsd:string para texto).
Passo 3: Adicione o Esquema ao Excel
- Abra seu arquivo do Excel.
- Vá para a guia Desenvolvedor. (Se não a vir, vá para Arquivo > Opções > Personalizar Faixa de Opções, marque "Desenvolvedor" e clique em "OK".)
- Na guia Desenvolvedor, clique em Fonte para abrir o painel Fonte XML.
- Clique em Mapas XML... e depois em Adicionar....
- Anexe o arquivo de esquema .xsd que você criou usando a caixa de diálogo Mapas XML

Passo 4: Mapeie os Elementos XML para Suas Células
- No painel Fonte XML, você verá seus elementos (“Catalogo”, “Produto”, “ID”, etc.).
- Arraste o elemento “Produto” e solte-o na célula A1. O Excel criará uma tabela bem formatada.
- Os elementos agora estarão mapeados. Seus dados estão prontos para exportação.

Passo 5: Exporte para XML
- Com seus dados mapeados selecionados, volte para a guia Desenvolvedor.
- Clique em Exportar.
- Escolha um local e um nome para o seu novo arquivo XML e clique em OK.
O arquivo XML exportado corresponderá ao seu esquema, assim:

Você também pode gostar: Converta XLS/XLSX para HTML Facilmente — Mantenha a Formatação do Excel Intacta
Método 2: Conversores Online Gratuitos de Excel para XML
Se você precisa de uma conversão rápida e única sem a configuração técnica, as ferramentas online são suas melhores amigas.
Principais ferramentas para converter Excel em XML online (100% grátis, sem necessidade de inscrição):
1. CloudxDocs (Mais Amigável)
- Acesse o conversor CloudxDocs EXCEL PARA XML.
- Envie seu arquivo do Excel (suporta XLS, XLSX, XLSB).
- Aguarde a conclusão da conversão e baixe seu arquivo XML.
Este conversor produz por padrão um arquivo de Planilha XML que preserva a formatação do Excel.

2. WizlyTools (Suporta XML Personalizado)
- Acesse o conversor de Excel para XML da WizlyTools.
- Envie um arquivo do Excel (.xlsx, .xls).
- Insira o nome do elemento raiz e o nome do elemento de linha.
- Selecione o tamanho da indentação para sua saída XML.
- Clique em "Converter para XML" e copie ou baixe o XML resultante
Este conversor oferece mais controle sobre a estrutura XML, como definir um elemento raiz específico, um elemento de linha e permite visualizar o XML antes de baixar

Nota: Evite enviar dados sensíveis (por exemplo, registros financeiros) para ferramentas online. Use métodos manuais para arquivos confidenciais.
Método 3: Automatizar a Conversão de Excel para XML em Python
Para desenvolvedores e profissionais de TI que trabalham com Python, o Spire.XLS for Python oferece uma solução robusta e orientada por código para converter planilhas do Excel em XML sem a necessidade de instalar o Microsoft Excel. Isso é ideal para automação do lado do servidor e integração de aplicativos.
Passo 1: Instalação
Primeiro, você precisa instalar a biblioteca Spire.XLS for Python. Ela está disponível via PyPI.
pip install Spire.XLS
Passo 2: Escreva o Script Python
Este script usa o Spire.XLS para ler dados do Excel e, em seguida, gera XML com o xml.etree.ElementTree (para estrutura) e o minidom (para formatação bonita) integrados do Python.
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
# Load the Excel file
workbook = Workbook()
workbook.LoadFromFile("Orders.xlsx")
# Get the first worksheet
worksheet = workbook.Worksheets[0]
# Get row and column counts (Spire.XLS uses 1-based indexing)
max_row = worksheet.LastRow
max_col = worksheet.LastColumn
# Check if data exists (headers in row 1, data in row 2+)
if max_row < 2:
raise ValueError("No data found! Ensure headers are in row 1 and data starts in row 2.")
# Create XML root element
root = ET.Element("Info")
# Loop through data rows (skip row 1: headers)
for row in range(2, max_row + 1):
# Create a row element (e.g., <Order>)
row_element = ET.SubElement(root, "Order")
# Loop through columns to get headers and values
for col in range(1, max_col + 1):
# Get header (XML tag)
header = worksheet.Range[1, col].Value
# Get cell value (data for the XML tag)
cell_value = worksheet.Range[row, col].Value
# Create sub-element and add value
ET.SubElement(row_element, header).text = str(cell_value)
# Pretty-print XML (add indentation for readability)
rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent=" ")
# Save to XML file
with open("Orders.xml", 'w', encoding='utf-8') as f:
f.write(pretty_xml)
# Close the workbook
workbook.Dispose()
Explicação do Código:
- Carregar Arquivo Excel: Usa o Spire.XLS para abrir um arquivo do Excel e acessar sua primeira planilha.
- Definir Intervalo de Dados: Encontra a última linha e coluna com dados (indexação baseada em 1 no Spire.XLS) para saber os limites dos dados.
- Construir Estrutura XML:
- Cria um elemento XML raiz
<Info>. - Percorre cada linha de dados (a partir da linha 2), criando um elemento
<Pedido>para cada uma. - Para cada coluna na linha: Use o cabeçalho da linha 1 como a tag XML e o valor da célula como o conteúdo da tag.
- Cria um elemento XML raiz
- Salvar XML: Formata o XML com indentação (para legibilidade) e o salva em um arquivo XML.
Exemplo de Saída XML

O Spire.XLS for Python também fornece um método direto SaveAsXml() para converter Excel para o formato Open XML.
Considerações Finais
Converter Excel para XML é uma habilidade fundamental que libera o verdadeiro potencial dos seus dados, permitindo que eles fluam perfeitamente para aplicativos da web, arquivos de configuração e outros sistemas de negócios. Ao entender os métodos disponíveis, desde o poder controlado dos Mapas XML do Excel até a facilidade rápida das ferramentas online e a força industrial do scripting em Python, você pode escolher a ferramenta certa para cada trabalho.
Perguntas Frequentes Sobre a Conversão de Excel para XML
P1: Como faço para converter em lote vários arquivos do Excel para XML de uma só vez?
A conversão em lote economiza tempo para mais de 10 arquivos — use estes métodos com base no seu nível de habilidade:
- Ferramentas online: O Zamzar suporta até 50 arquivos por lote (envie todos os arquivos do Excel, selecione “XML” como saída e obtenha um zip dos XMLs).
- Spire.XLS for Python: Estenda o script fornecido para percorrer uma pasta
import os
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
input_folder = "C:/Excel_Batch"
output_folder = "C:/XML_Batch"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith((".xlsx", ".xls")):
workbook = Workbook()
workbook.LoadFromFile(os.path.join(input_folder, filename))
# Add conversion logic (same as single file) here
workbook.Dispose()
P2: Posso personalizar a estrutura XML (por exemplo, alterar as tags raiz/linha)?
Sim, todos os métodos suportam personalização:
- Manual: Edite o esquema XML (arquivo .xsd) para alterar as tags raiz (por exemplo,
<Catalogo>) ou de linha (por exemplo,<Produto>). - Online: Ferramentas como o WizlyTools permitem que você defina os nomes dos elementos raiz/linha nas configurações.
- Python: Modifique as linhas ET.Element("NomeRaiz") e ET.SubElement(root, "NomeLinha") do script para atender às suas necessidades.
P3: Meus dados têm fórmulas. A saída XML conterá a fórmula ou o valor calculado?
Em quase todos os casos, a exportação XML conterá o valor calculado (o resultado da fórmula), não a fórmula em si. O XML é principalmente um formato para representar dados, não a lógica ou os cálculos por trás deles. O processo de conversão lê os valores visíveis das células.
P4: Meu arquivo XML parece bagunçado quando o abro. Como posso formatá-lo corretamente?
O XML gerado por esses métodos geralmente está em um formato compactado, sem quebras de linha ou indentação. Isso ainda é um XML válido. Para visualizá-lo em um formato legível:
- Abra o arquivo em um navegador da web moderno (Chrome, Firefox, Edge), que o formatará e exibirá automaticamente de forma organizada.
- Use um editor de código como VS Code, Notepad++, ou Sublime Text, que possuem formatação XML integrada ou plugins para reindentar o código.
Veja Também
Excel을 XML로 변환: 무료 도구 + Python 자동화

소프트웨어, API 또는 웹사이트 간에 공유해야 하는 데이터로 작업하는 경우 Excel을 XML로 변환하는 것은 중요한 기술입니다. XML(Extensible Markup Language)은 데이터 교환에 이상적인 보편적이고 기계가 읽을 수 있는 형식이며, Excel은 스프레드시트 구성에 탁월합니다. 이 둘 사이의 격차를 해소하면 데이터가 플랫폼 간에 원활하게 흐를 수 있습니다.
빠른 해결책을 찾는 초보자, 데이터 무결성을 보장하는 분석가, 또는 자동화된 파이프라인을 구축하는 개발자이든, 이 가이드는 세 가지 효과적이고 오류 없는 Excel을 XML로 변환 방법을 안내합니다.
Excel을 XML로 변환하는 이유는 무엇입니까?
Excel을 XML로 변환하는 핵심 가치는 다음과 같습니다:
- 플랫폼 간 호환성: XML은 API, CMS 플랫폼(WordPress, Shopify), 엔터프라이즈 도구(SAP, Salesforce) 및 프로그래밍 언어(Python, Java)와 함께 작동합니다.
- 구조화된 데이터: XML은 Excel의 행/열을 태그가 지정된 요소(예:
<product><name>Laptop</name><price>999</price></product>)로 보존하여 소프트웨어가 쉽게 구문 분석할 수 있도록 합니다. - 데이터 무결성: XML은 시스템 간에 공유될 때 Excel 파일에서 발생하는 서식 문제(예: 깨진 수식, 병합된 셀)를 방지합니다.
- 사용 사례: 전자 상거래 제품 피드, API 데이터 내보내기, CMS 콘텐츠 가져오기 및 엔터프라이즈 데이터 통합.
성공적인 변환을 위한 Excel 데이터 구조화
가장 중요하고 첫 번째 단계는 Excel에서 발생합니다. 잘 구조화된 소스 시트는 원활한 변환을 보장합니다.
- 고유하고 짧은 열 머리글을 사용하십시오(공백/특수 문자 없음—예: "Product Name" 대신 "ProductName").
- 빈 행/열을 제거하십시오(XML 유효성 검사 오류를 유발함).
- 일관된 데이터 유형을 확인하십시오(예: 모든 가격은 숫자, 날짜는 균일한 형식).
- 병합된 셀이나 복잡한 수식을 피하고 원시 데이터를 사용하십시오.
방법 1: 수동 Excel을 XML로 변환 (내장 개발자 탭)
Excel의 내장 개발자 탭은 XML 작업을 위한 기본 지원을 제공하여 프로그래밍 지식이 없는 Excel 사용자도 접근할 수 있습니다.
단계별 가이드:
1단계: Excel 데이터 준비
데이터를 명확하고 표 형식으로 구성하십시오. 첫 번째 행에는 XML 태그가 될 열 머리글이 포함되어야 합니다. 이 예에서는 간단한 제품 목록을 사용하겠습니다:

2단계: XML 스키마 생성
XML 스키마(.xsd 파일)는 XML 출력의 구조를 정의합니다. 사용할 태그와 서로 어떻게 관련되는지를 지정합니다.
예제 스키마 (컴퓨터에 "products.xsd"로 저장):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="ProductName" type="xs:string"/>
<xs:element name="Category" type="xs:string"/>
<xs:element name="Price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Excel 열 머리글과 일치하도록 name 속성을 조정하십시오(대소문자 구분).
- 적절한 유형을 사용하십시오(예: 숫자는 xsd:integer, 텍스트는 xsd:string).
3단계: Excel에 스키마 추가
- Excel 파일을 엽니다.
- 개발자 탭으로 이동합니다. (보이지 않으면 파일 > 옵션 > 리본 사용자 지정으로 이동하여 "개발자"를 선택하고 "확인"을 클릭하십시오.)
- 개발자 탭에서 소스를 클릭하여 XML 소스 창을 엽니다.
- XML 맵...을 클릭한 다음 추가...를 클릭합니다.
- XML 맵 대화 상자를 사용하여 생성한 .xsd 스키마 파일을 첨부합니다.

4단계: XML 요소를 셀에 매핑
- XML 소스 창에서 요소("Catalog", "Product", "ID" 등)를 볼 수 있습니다.
- "Product" 요소를 끌어다 셀 A1에 놓습니다. Excel이 멋지게 서식이 지정된 테이블을 만듭니다.
- 이제 요소가 매핑되었습니다. 데이터가 내보낼 준비가 되었습니다.

5단계: XML로 내보내기
- 매핑된 데이터를 선택한 상태에서 개발자 탭으로 돌아갑니다.
- 내보내기를 클릭합니다.
- 새 XML 파일의 위치와 이름을 선택하고 확인을 클릭합니다.
내보낸 XML 파일은 다음과 같이 스키마와 일치합니다:

관심 있을 만한 내용: XLS/XLSX를 HTML로 쉽게 변환 — Excel 서식 유지
방법 2: 무료 온라인 Excel을 XML로 변환기
기술적인 설정 없이 빠른 일회성 변환이 필요한 경우 온라인 도구가 가장 좋은 친구입니다.
Excel을 XML로 온라인 변환하는 최고의 도구 (100% 무료, 가입 불필요):
1. CloudxDocs (가장 사용자 친화적)
- CloudxDocs EXCEL TO XML 변환기로 이동합니다.
- Excel 파일을 업로드합니다 (XLS, XLSX, XLSB 지원).
- 변환이 완료될 때까지 기다린 다음 XML 파일을 다운로드합니다.
이 변환기는 기본적으로 Excel의 서식을 유지하는 XML 스프레드시트 파일을 생성합니다.

2. WizlyTools (사용자 지정 XML 지원)
- WizlyTools Excel to XML converter로 이동합니다.
- Excel 파일(.xlsx, .xls)을 업로드합니다.
- 루트 요소 이름과 행 요소 이름을 입력합니다.
- XML 출력의 들여쓰기 크기를 선택합니다.
- "XML로 변환"을 클릭한 다음 결과 XML을 복사하거나 다운로드합니다.
이 변환기는 특정 루트 요소, 행 요소를 정의하는 등 XML 구조에 대한 더 많은 제어권을 제공하며 다운로드하기 전에 XML을 미리 볼 수 있습니다.

참고: 민감한 데이터(예: 금융 기록)를 온라인 도구에 업로드하지 마십시오. 기밀 파일에는 수동 방법을 사용하십시오.
방법 3: Python에서 Excel을 XML로 변환 자동화
Python으로 작업하는 개발자 및 IT 전문가를 위해 Spire.XLS for Python은 Microsoft Excel을 설치할 필요 없이 Excel 스프레드시트를 XML로 변환하는 강력한 코드 기반 솔루션을 제공합니다. 이는 서버 측 자동화 및 애플리케이션 통합에 이상적입니다.
1단계: 설치
먼저 Spire.XLS for Python 라이브러리를 설치해야 합니다. PyPI를 통해 사용할 수 있습니다.
pip install Spire.XLS
2단계: Python 스크립트 작성
이 스크립트는 Spire.XLS를 사용하여 Excel 데이터를 읽은 다음 Python의 내장 xml.etree.ElementTree(구조용) 및 minidom(예쁜 서식용)으로 XML을 생성합니다.
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
# Excel 파일 로드
workbook = Workbook()
workbook.LoadFromFile("Orders.xlsx")
# 첫 번째 워크시트 가져오기
worksheet = workbook.Worksheets[0]
# 행 및 열 수 가져오기 (Spire.XLS는 1 기반 인덱싱 사용)
max_row = worksheet.LastRow
max_col = worksheet.LastColumn
# 데이터 존재 여부 확인 (헤더는 1행, 데이터는 2행 이상)
if max_row < 2:
raise ValueError("데이터를 찾을 수 없습니다! 헤더가 1행에 있고 데이터가 2행에서 시작하는지 확인하십시오.")
# XML 루트 요소 생성
root = ET.Element("Info")
# 데이터 행 반복 (1행: 헤더 건너뛰기)
for row in range(2, max_row + 1):
# 행 요소 생성 (예: )
row_element = ET.SubElement(root, "Order")
# 열을 반복하여 헤더와 값 가져오기
for col in range(1, max_col + 1):
# 헤더 가져오기 (XML 태그)
header = worksheet.Range[1, col].Value
# 셀 값 가져오기 (XML 태그의 데이터)
cell_value = worksheet.Range[row, col].Value
# 하위 요소 생성 및 값 추가
ET.SubElement(row_element, header).text = str(cell_value)
# XML 예쁘게 인쇄 (가독성을 위해 들여쓰기 추가)
rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent=" ")
# XML 파일에 저장
with open("Orders.xml", 'w', encoding='utf-8') as f:
f.write(pretty_xml)
# 통합 문서 닫기
workbook.Dispose()
코드 설명:
- Excel 파일 로드: Spire.XLS를 사용하여 Excel 파일을 열고 첫 번째 워크시트에 액세스합니다.
- 데이터 범위 정의: 데이터가 있는 마지막 행과 열을 찾아(Spire.XLS에서 1 기반 인덱싱) 데이터의 범위를 파악합니다.
- XML 구조 빌드:
- 루트 XML 요소
<Info>를 생성합니다. - 각 데이터 행을 반복하여(2행부터 시작) 각 행에 대해
<Order>요소를 만듭니다. - 행의 각 열에 대해: 1행의 헤더를 XML 태그로 사용하고 셀 값을 태그의 내용으로 사용합니다.
- 루트 XML 요소
- XML 저장: XML을 들여쓰기로 서식을 지정하고(가독성을 위해) XML 파일에 저장합니다.
예제 출력 XML

Spire.XLS for Python은 또한 SaveAsXml() 메서드를 직접 제공하여 Excel을 Open XML 형식으로 변환합니다.
마지막 생각
Excel을 XML로 변환하는 것은 데이터의 진정한 잠재력을 발휘하여 웹 애플리케이션, 구성 파일 및 기타 비즈니스 시스템으로 원활하게 흐르도록 하는 기본 기술입니다. Excel의 XML 맵의 제어된 기능부터 온라인 도구의 빠른 용이성, Python 스크립팅의 산업적 강점에 이르기까지 사용 가능한 방법을 이해함으로써 모든 작업에 적합한 도구를 선택할 수 있습니다.
Excel을 XML로 변환에 대한 FAQ
Q1: 여러 Excel 파일을 한 번에 XML로 일괄 변환하려면 어떻게 해야 합니까?
일괄 변환은 10개 이상의 파일에 대해 시간을 절약합니다. 기술 수준에 따라 다음 방법을 사용하십시오:
- 온라인 도구: Zamzar는 일괄 처리당 최대 50개의 파일을 지원합니다(모든 Excel 파일을 업로드하고 출력으로 "XML"을 선택하면 XML의 zip 파일을 얻을 수 있습니다).
- Spire.XLS for Python: 제공된 스크립트를 확장하여 폴더를 반복합니다.
import os
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
input_folder = "C:/Excel_Batch"
output_folder = "C:/XML_Batch"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith((".xlsx", ".xls")):
workbook = Workbook()
workbook.LoadFromFile(os.path.join(input_folder, filename))
# 여기에 변환 로직 추가 (단일 파일과 동일)
workbook.Dispose()
Q2: XML 구조를 사용자 지정할 수 있습니까(예: 루트/행 태그 변경)?
예, 모든 방법이 사용자 지정을 지원합니다:
- 수동: XML 스키마(.xsd 파일)를 편집하여 루트(예:
<Catalog>) 또는 행(예:<Product>) 태그를 변경합니다. - 온라인: WizlyTools와 같은 도구를 사용하면 설정에서 루트/행 요소 이름을 설정할 수 있습니다.
- Python: 스크립트의 ET.Element("RootName") 및 ET.SubElement(root, "RowName") 줄을 필요에 맞게 수정합니다.
Q3: 내 데이터에 수식이 있습니다. XML 출력에 수식이 포함됩니까, 아니면 계산된 값이 포함됩니까?
거의 모든 경우에 XML 내보내기에는 수식 자체가 아닌 계산된 값(수식의 결과)이 포함됩니다. XML은 주로 데이터 표현을 위한 형식이며 그 뒤에 있는 논리나 계산을 위한 것이 아닙니다. 변환 프로세스는 보이는 셀 값을 읽습니다.
Q4: XML 파일을 열면 지저분해 보입니다. 어떻게 제대로 서식을 지정할 수 있습니까?
이러한 방법으로 생성된 XML은 종종 줄 바꿈이나 들여쓰기 없이 압축된 형식입니다. 이것은 여전히 유효한 XML입니다. 읽기 쉬운 형식으로 보려면:
- 최신 웹 브라우저(Chrome, Firefox, Edge)에서 파일을 열면 자동으로 서식이 지정되어 깔끔하게 표시됩니다.
- VS Code, Notepad++ 또는 Sublime Text와 같은 코드 편집기를 사용하십시오. 이러한 편집기에는 코드를 다시 들여쓰기 위한 내장 XML 서식 지정 또는 플러그인이 있습니다.
참고 항목
Convertir Excel en XML : Outils gratuits + Automatisation Python

Si vous travaillez avec des données qui doivent être partagées entre des logiciels, des API ou des sites web, la conversion d'Excel en XML est une compétence essentielle. Le XML (Extensible Markup Language) est un format universel, lisible par machine, idéal pour l'échange de données, tandis qu'Excel excelle dans l'organisation des feuilles de calcul. Combler le fossé entre les deux permet à vos données de circuler de manière transparente sur toutes les plateformes.
Que vous soyez un débutant à la recherche d'une solution rapide, un analyste garantissant l'intégrité des données ou un développeur créant un pipeline automatisé, ce guide vous présentera trois méthodes de conversion Excel vers XML efficaces et sans erreur.
- Méthode 1 : Conversion manuelle d'Excel en XML (onglet Développeur intégré)
- Méthode 2 : Convertisseurs en ligne gratuits d'Excel en XML
- Méthode 3 : Automatiser la conversion d'Excel en XML en Python
Pourquoi convertir Excel en XML ?
La valeur fondamentale de la conversion d'Excel en XML réside dans :
- Compatibilité multiplateforme : XML fonctionne avec les API, les plateformes CMS (WordPress, Shopify), les outils d'entreprise (SAP, Salesforce) et les langages de programmation (Python, Java).
- Données structurées : XML préserve les lignes/colonnes d'Excel en tant qu'éléments balisés (par exemple,
<produit><nom>OrdinateurPortable</nom><prix>999</prix></produit>), ce qui facilite l'analyse par les logiciels. - Intégrité des données : XML évite les problèmes de formatage qui affectent les fichiers Excel (par exemple, formules rompues, cellules fusionnées) lorsqu'ils sont partagés entre systèmes.
- Cas d'utilisation : Flux de produits de commerce électronique, exportations de données d'API, importations de contenu de CMS et intégration de données d'entreprise.
Structuration des données Excel pour une conversion réussie
La première étape, la plus critique, se déroule dans Excel. Une feuille source bien structurée garantit une conversion en douceur.
- Utilisez des en-têtes de colonne uniques et courts (sans espaces ni caractères spéciaux, par exemple, "NomProduit" au lieu de "Nom du produit").
- Supprimez les lignes/colonnes vides (elles provoquent des erreurs de validation XML).
- Assurez-vous que les types de données sont cohérents (par exemple, tous les prix en tant que nombres, les dates dans un format uniforme).
- Évitez les cellules fusionnées ou les formules complexes ; utilisez plutôt des données brutes.
Méthode 1 : Conversion manuelle d'Excel en XML (onglet Développeur intégré)
L'onglet Développeur intégré d'Excel offre un support natif pour les tâches XML, le rendant accessible aux utilisateurs d'Excel sans connaissances en programmation.
Guide étape par étape :
Étape 1 : Préparez vos données Excel
Structurez vos données dans un format tabulaire clair. La première ligne doit contenir vos en-têtes de colonne, qui deviendront vos balises XML. Pour cet exemple, utilisons une simple liste de produits :

Étape 2 : Créez un schéma XML
Un schéma XML (fichier .xsd) définit la structure de votre sortie XML. Il spécifie quelles balises utiliser et comment elles sont liées les unes aux autres.
Exemple de schéma (enregistrez-le sous le nom de « products.xsd » sur votre ordinateur) :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="ProductName" type="xs:string"/>
<xs:element name="Category" type="xs:string"/>
<xs:element name="Price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Ajustez les attributs name pour qu'ils correspondent aux en-têtes de vos colonnes Excel (sensible à la casse).
- Utilisez les types appropriés (par exemple, xsd:integer pour les nombres, xsd:string pour le texte).
Étape 3 : Ajoutez le schéma à Excel
- Ouvrez votre fichier Excel.
- Allez dans l'onglet Développeur. (Si vous ne le voyez pas, allez dans Fichier > Options > Personnaliser le ruban, cochez « Développeur » et cliquez sur « OK ».)
- Dans l'onglet Développeur, cliquez sur Source pour ouvrir le volet Source XML.
- Cliquez sur Mappages XML... puis sur Ajouter....
- Joignez le fichier de schéma .xsd que vous avez créé à l'aide de la boîte de dialogue Mappages XML

Étape 4 : Mappez les éléments XML à vos cellules
- Dans le volet Source XML, vous verrez vos éléments (« Catalog », « Product », « ID », etc.).
- Faites glisser l'élément « Product » et déposez-le sur la cellule A1. Excel créera un tableau bien formaté.
- Les éléments seront maintenant mappés. Vos données sont prêtes pour l'exportation.

Étape 5 : Exporter en XML
- Avec vos données mappées sélectionnées, retournez à l'onglet Développeur.
- Cliquez sur Exporter.
- Choisissez un emplacement et un nom pour votre nouveau fichier XML et cliquez sur OK.
Le fichier XML exporté correspondra à votre schéma, comme ceci :

Vous aimerez peut-être aussi : Convertir facilement XLS/XLSX en HTML — Conserver intact le formatage Excel
Méthode 2 : Convertisseurs en ligne gratuits d'Excel en XML
Si vous avez besoin d'une conversion rapide et ponctuelle sans configuration technique, les outils en ligne sont vos meilleurs alliés.
Meilleurs outils pour convertir Excel en XML en ligne (100 % gratuits, sans inscription) :
1. CloudxDocs (Le plus convivial)
- Allez sur le convertisseur CloudxDocs EXCEL TO XML.
- Téléchargez votre fichier Excel (prend en charge XLS, XLSX, XLSB).
- Attendez la fin de la conversion et téléchargez votre fichier XML.
Ce convertisseur produit par défaut un fichier de feuille de calcul XML qui préserve le formatage d'Excel.

2. WizlyTools (Prend en charge le XML personnalisé)
- Allez sur le convertisseur Excel vers XML de WizlyTools.
- Téléchargez un fichier Excel (.xlsx, .xls).
- Entrez le nom de l'élément racine et le nom de l'élément de ligne.
- Sélectionnez une taille d'indentation pour votre sortie XML.
- Cliquez sur « Convertir en XML » puis copiez ou téléchargez le XML résultant
Ce convertisseur vous donne plus de contrôle sur la structure XML, comme la définition d'un élément racine spécifique, d'un élément de ligne, et vous permet de prévisualiser le XML avant de le télécharger

Remarque : Évitez de télécharger des données sensibles (par exemple, des dossiers financiers) sur des outils en ligne. Utilisez des méthodes manuelles pour les fichiers confidentiels.
Méthode 3 : Automatiser la conversion d'Excel en XML en Python
Pour les développeurs et les professionnels de l'informatique travaillant en Python, Spire.XLS for Python fournit une solution robuste, pilotée par le code, pour convertir des feuilles de calcul Excel en XML sans nécessiter l'installation de Microsoft Excel. C'est idéal pour l'automatisation côté serveur et l'intégration d'applications.
Étape 1 : Installation
Tout d'abord, vous devez installer la bibliothèque Spire.XLS for Python. Elle est disponible via PyPI.
pip install Spire.XLS
Étape 2 : Écrire le script Python
Ce script utilise Spire.XLS pour lire les données Excel, puis génère du XML avec les modules intégrés de Python xml.etree.ElementTree (pour la structure) et minidom (pour un formatage élégant).
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
# Load the Excel file
workbook = Workbook()
workbook.LoadFromFile("Orders.xlsx")
# Get the first worksheet
worksheet = workbook.Worksheets[0]
# Get row and column counts (Spire.XLS uses 1-based indexing)
max_row = worksheet.LastRow
max_col = worksheet.LastColumn
# Check if data exists (headers in row 1, data in row 2+)
if max_row < 2:
raise ValueError("No data found! Ensure headers are in row 1 and data starts in row 2.")
# Create XML root element
root = ET.Element("Info")
# Loop through data rows (skip row 1: headers)
for row in range(2, max_row + 1):
# Create a row element (e.g., <Order>)
row_element = ET.SubElement(root, "Order")
# Loop through columns to get headers and values
for col in range(1, max_col + 1):
# Get header (XML tag)
header = worksheet.Range[1, col].Value
# Get cell value (data for the XML tag)
cell_value = worksheet.Range[row, col].Value
# Create sub-element and add value
ET.SubElement(row_element, header).text = str(cell_value)
# Pretty-print XML (add indentation for readability)
rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent=" ")
# Save to XML file
with open("Orders.xml", 'w', encoding='utf-8') as f:
f.write(pretty_xml)
# Close the workbook
workbook.Dispose()
Explication du code :
- Charger le fichier Excel : Utilise Spire.XLS pour ouvrir un fichier Excel et accéder à sa première feuille de calcul.
- Définir la plage de données : Trouve la dernière ligne et la dernière colonne avec des données (indexation basée sur 1 dans Spire.XLS) pour connaître les limites des données.
- Construire la structure XML :
- Crée un élément racine XML
<Info>. - Parcourt chaque ligne de données (à partir de la ligne 2), en créant un élément
<Order>pour chacune. - Pour chaque colonne de la ligne : Utilisez l'en-tête de la ligne 1 comme balise XML et la valeur de la cellule comme contenu de la balise.
- Crée un élément racine XML
- Enregistrer le XML : Formate le XML avec une indentation (pour la lisibilité) et l'enregistre dans un fichier XML.
Exemple de sortie XML

Spire.XLS for Python fournit également une méthode directe SaveAsXml() pour convertir Excel au format Open XML.
Réflexions finales
La conversion d'Excel en XML est une compétence fondamentale qui libère le véritable potentiel de vos données, leur permettant de s'intégrer de manière transparente dans les applications web, les fichiers de configuration et d'autres systèmes d'entreprise. En comprenant les méthodes disponibles, de la puissance contrôlée des Mappages XML d'Excel à la facilité ultra-rapide des outils en ligne et à la robustesse industrielle du scripting Python, vous pouvez choisir le bon outil pour chaque tâche.
FAQ sur la conversion d'Excel en XML
Q1 : Comment puis-je convertir par lots plusieurs fichiers Excel en XML en une seule fois ?
La conversion par lots permet de gagner du temps pour plus de 10 fichiers. Utilisez ces méthodes en fonction de votre niveau de compétence :
- Outils en ligne : Zamzar prend en charge jusqu'à 50 fichiers par lot (téléchargez tous les fichiers Excel, sélectionnez « XML » comme sortie et obtenez un zip de fichiers XML).
- Spire.XLS for Python : Étendez le script fourni pour parcourir un dossier
import os
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom
input_folder = "C:/Excel_Batch"
output_folder = "C:/XML_Batch"
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.endswith((".xlsx", ".xls")):
workbook = Workbook()
workbook.LoadFromFile(os.path.join(input_folder, filename))
# Add conversion logic (same as single file) here
workbook.Dispose()
Q2 : Puis-je personnaliser la structure XML (par exemple, changer les balises racine/ligne) ?
Oui, toutes les méthodes prennent en charge la personnalisation :
- Manuel : Modifiez le schéma XML (fichier .xsd) pour changer les balises racine (par exemple,
<Catalog>) ou de ligne (par exemple,<Product>). - En ligne : Des outils comme WizlyTools vous permettent de définir les noms des éléments racine/ligne dans les paramètres.
- Python : Modifiez les lignes ET.Element("NomRacine") et ET.SubElement(root, "NomLigne") du script pour répondre à vos besoins.
Q3 : Mes données contiennent des formules. La sortie XML contiendra-t-elle la formule ou la valeur calculée ?
Dans presque tous les cas, l'exportation XML contiendra la valeur calculée (le résultat de la formule), et non la formule elle-même. Le XML est avant tout un format de représentation des données, et non de la logique ou des calculs qui les sous-tendent. Le processus de conversion lit les valeurs visibles des cellules.
Q4 : Mon fichier XML semble désordonné lorsque je l'ouvre. Comment puis-je le formater correctement ?
Le XML généré par ces méthodes est souvent dans un format compressé sans sauts de ligne ni indentation. Il s'agit toujours d'un XML valide. Pour le visualiser dans un format lisible :
- Ouvrez le fichier dans un navigateur web moderne (Chrome, Firefox, Edge), qui le formatera et l'affichera automatically de manière soignée.
- Utilisez un éditeur de code comme VS Code, Notepad++ ou Sublime Text, qui disposent d'un formatage XML intégré ou de plugins pour réindenter le code.