Libreria .NET open source per la manipolazione di fogli di calcolo Excel
ClosedXML consente di leggere, manipolare e scrivere documenti Microsoft Excel
ClosedXML è un'API C# open source per leggere, manipolare e scrivere documenti Microsoft Excel 2007+ (.xlsx, .xlsm). L'API consente di creare file Excel senza utilizzare l'applicazione Excel e di leggere file utilizzando le funzionalità avanzate.
Usando l'API puoi dare uno stile alle tue cartelle di lavoro usando la colorazione dello sfondo e il bordo delle celle. Puoi aggiungere, rimuovere e spostare i tuoi fogli di lavoro e gestire i tipi di dati all'interno di Excel.
Introduzione a ClosedXML
Il modo consigliato per installare ClosedXML è da NuGet, utilizzare il comando seguente per un'installazione più rapida.
Installa ClosedXML da NuGet
Install-Package ClosedXML
Crea nuove cartelle di lavoro gratuitamente usando C#
CLosedXML consente agli sviluppatori C.NET di creare nuovi fogli di lavoro excel. È possibile creare un libro di cucina bianco utilizzando il metodo XLWorkbook(). La biblioteca ha incluso diverse caratteristiche importanti per la gestione dei documenti del foglio di lavoro. Permette di aggiungere fogli di lavoro nel tuo libro di cucina, aggiungere celle e colonne, applicare stili a righe e colonne, eliminare le celle indesiderate e molti altri.
Crea nuovi libri di cucina tramite .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");
}
Stile fogli Excel usando C#
La sorgente aperta ClosedXML API consente agli sviluppatori di software di applicare stili ai loro fogli excel con solo un paio di linee di codice C. Il API è arricchito con caratteristiche di styling tra cui allineamento, bordo, riempimento, font, formato di numero, righe di styling, colonne, e altro ancora. La libreria permette anche agli utenti di modificare lo styling in base alle loro esigenze.
Come applicare stili a fogli Excel tramite Libreria 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"));
Utilizzo dei filtri automatici in Excel utilizzando C#
La libreria ClosedXML ha incluso il supporto completo per l'applicazione di filtri all'interno dei fogli di lavoro excel. La biblioteca ha incluso vari tipi di filtri per la comodità dell'utente. È possibile applicare il filtro a una gamma specifica, applicare un filtro ai valori e creare i propri filtri personalizzati.
Come applicare i filtri auto in Excel tramite 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();
}
}
}