Biblioteca .NET de código aberto para manipulação de planilhas do Excel
ClosedXML permite ler, manipular e escrever documentos do Microsoft Excel
ClosedXML é uma API C# de código aberto para leitura, manipulação e gravação de documentos do Microsoft Excel 2007+ (.xlsx, .xlsm). A API permite que você crie arquivos do Excel sem usar o aplicativo Excel e leia os arquivos usando os recursos aprimorados.
Usando a API, você pode estilizar suas pastas de trabalho usando cores de fundo e bordas de células. Você pode adicionar, remover e mover suas planilhas e gerenciar tipos de dados dentro do Excel.
Introdução ao ClosedXML
A maneira recomendada de instalar o ClosedXML é do NuGet, use o comando a seguir para uma instalação mais rápida.
Instalar ClosedXML do NuGet
Install-Package ClosedXML
Crie novas pastas de trabalho gratuitamente usando C#
CLosedXML permite que os desenvolvedores C.NET criem novas planilhas excelente. Você pode um livro de receitas em branco usando o método XLWorkbook(). A biblioteca incluiu vários recursos importantes para gerenciar seus documentos de planilha. Permite planilhas em seu livro de receitas, células e, estilos para e, as células jadas e muito mais.
Criar novos Cookbooks através de .NET API
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
workbook.SaveAs("HelloWorld.xlsx");
}
Estilizar planilhas do Excel usando C#
A fonte aberta ClosedXML API permite que os desenvolvedores de software aplicem estilos às suas de excel com apenas algumas de código C. O API é enriquecido com características de estilo, incluindo amento, fronteira, imento, fonte, formato de número, de estilo, e muito mais. A biblioteca também permite que os usuários alterem o estilo de acordo com suas necessidades.
Como Aplicar Styles às Folhas do Excel através da Biblioteca C
var path = Program.BaseCreatedDirectory;
new StyleFont().Create(Path.Combine(path, "styleFont.xlsx"));
new StyleFill().Create(Path.Combine(path, "styleFill.xlsx"));
new StyleBorder().Create(Path.Combine(path, "styleBorder.xlsx"));
new StyleAlignment().Create(Path.Combine(path, "styleAlignment.xlsx"));
new StyleNumberFormat().Create(Path.Combine(path, "styleNumberFormat.xlsx"));
new StyleIncludeQuotePrefix().Create(Path.Combine(path, "styleIncludeQuotePrefix.xlsx"));
Usando filtros automáticos no Excel usando C#
A biblioteca ClosedXML suporte completo para filtros de dentro das suas planilhas. A biblioteca incluiu vários tipos de filtros para a do. Você pode o filtro a uma específica, um filtro para valores e seus filtros personalizados também.
Como Aplicar Auto Filtros no Excel via C
public class DynamicAutoFilter : IXLExample
{
public void Create(string filePath)
{
var wb = new XLWorkbook();
IXLWorksheet ws;
#region Single Column Numbers
String singleColumnNumbers = "Single Column Numbers";
ws = wb.Worksheets.Add(singleColumnNumbers);
// Add a bunch of numbers to filter
ws.Cell("A1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
// Add filters
ws.RangeUsed().SetAutoFilter().Column(1).AboveAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(1);
#endregion
#region Multi Column
String multiColumn = "Multi Column";
ws = wb.Worksheets.Add(multiColumn);
ws.Cell("A1").SetValue("First")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
ws.Cell("B1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
ws.Cell("C1").SetValue("Strings")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
// Add filters
ws.RangeUsed().SetAutoFilter().Column(2).BelowAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(3);
#endregion
using (var ms = new MemoryStream())
{
wb.SaveAs(ms);
var workbook = new XLWorkbook(ms);
#region Single Column Numbers
//workbook.Worksheet(singleColumnNumbers).AutoFilter.Sort(1, XLSortOrder.Descending);
#endregion
#region Multi Column
//workbook.Worksheet(multiColumn).AutoFilter.Sort(3, XLSortOrder.Descending);
#endregion
workbook.SaveAs(filePath);
ms.Close();
}
}
}