Initial commit of the ClosedXML library

Establishes the foundational structure, core Excel functionality, and tooling.

- Implements base components for cells, ranges, columns, and rows.
- Integrates a custom calculation engine with a wide range of Excel functions.
- Adds comprehensive support for styling, conditional formatting, data validation, comments, pictures, and charts.
- Configures build setup, project metadata (NuGet), and developer guidelines.
- Includes editor and Git attributes for consistent code style and line endings.
This commit is contained in:
Thom Lamb
2026-06-23 11:02:53 -05:00
parent 28bc05cf54
commit 2cd6df6481
1092 changed files with 97270 additions and 408 deletions
@@ -0,0 +1,55 @@
using System;
using ClosedXML.Excel;
namespace ClosedXML_Examples
{
public class InsertingDeletingColumns : IXLExample
{
public void Create(String filePath)
{
var workbook = new XLWorkbook();
var ws = workbook.Worksheets.Add("Inserting and Deleting Columns");
// Range starts with 2 columns
var rng = ws.Range("B2:C3"); // Range starts on B2
// Insert a column before the range
ws.Column(1).InsertColumnsAfter(1); // Range starts on C2
// Insert a column in between the range
ws.Column(3).InsertColumnsAfter(1); // Range now has 3 columns
// Insert a column (from a range) before the range
ws.Range("A2:A3").InsertColumnsAfter(1); // Range starts on D2
// Insert a column (from a range) in between the range
ws.Range("D2:D3").InsertColumnsAfter(1); // Range now has 4 columns
// Inserting columns from a range not covering all columns
// does not affect our defined range
ws.Range("A1:A2").InsertColumnsAfter(1);
ws.Range("E3:E4").InsertColumnsAfter(1);
// Delete a column before the range
ws.Column(1).Delete(); // Range starts on C2
// Delete a column (from a range) before the range
ws.Range("A2:A3").Delete(XLShiftDeletedCells.ShiftCellsLeft); // Range starts on B2
// Delete a column in between the range
ws.Column(3).Delete(); // Range now has 3 columns
// Delete a column (from a range) in between the range
ws.Range("C2:C3").Delete(XLShiftDeletedCells.ShiftCellsLeft); // Range now has 2 columns
// Deleting columns from a range not covering all columns
// does not affect our defined range
ws.Range("A1:A2").Delete(XLShiftDeletedCells.ShiftCellsLeft);
ws.Range("D3:D4").Delete(XLShiftDeletedCells.ShiftCellsLeft);
rng.Style.Fill.BackgroundColor = XLColor.Orange;
workbook.SaveAs(filePath);
}
}
}