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.

Previous Next

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();
            }
        }
    }
 Italiano