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:
@@ -0,0 +1,51 @@
|
||||
using ClosedXML.Excel;
|
||||
using NUnit.Framework;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace ClosedXML_Tests.Excel
|
||||
{
|
||||
[TestFixture]
|
||||
public class HeaderFooterTests
|
||||
{
|
||||
[Test]
|
||||
public void CanChangeWorksheetHeader()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet ws = wb.AddWorksheet("Sheet1");
|
||||
|
||||
ws.PageSetup.Header.Center.AddText("Initial page header", XLHFOccurrence.EvenPages);
|
||||
|
||||
var ms = new MemoryStream();
|
||||
wb.SaveAs(ms, true);
|
||||
|
||||
wb = new XLWorkbook(ms);
|
||||
ws = wb.Worksheets.First();
|
||||
|
||||
ws.PageSetup.Header.Center.Clear();
|
||||
ws.PageSetup.Header.Center.AddText("Changed header", XLHFOccurrence.EvenPages);
|
||||
|
||||
wb.SaveAs(ms, true);
|
||||
|
||||
wb = new XLWorkbook(ms);
|
||||
ws = wb.Worksheets.First();
|
||||
|
||||
var newHeader = ws.PageSetup.Header.Center.GetText(XLHFOccurrence.EvenPages);
|
||||
Assert.AreEqual("Changed header", newHeader);
|
||||
}
|
||||
|
||||
[TestCase("")]
|
||||
[TestCase("&L&C&\"Arial\"&9 19-10-2017 \n&9&\"Arial\" &P &N &R")] // https://github.com/ClosedXML/ClosedXML/issues/563
|
||||
public void CanSetHeaderFooter(string s)
|
||||
{
|
||||
using (var wb = new XLWorkbook())
|
||||
{
|
||||
var ws = wb.AddWorksheet("Sheet1");
|
||||
{
|
||||
var header = ws.PageSetup.Header as XLHeaderFooter;
|
||||
header.SetInnerText(XLHFOccurrence.AllPages, s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
using System.Diagnostics;
|
||||
using ClosedXML.Excel;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace ClosedXML_Tests.Excel
|
||||
{
|
||||
[TestFixture]
|
||||
public class PageBreaksTests
|
||||
{
|
||||
[Test]
|
||||
public void RowBreaksShouldBeSorted()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddHorizontalPageBreak(10);
|
||||
sheet.PageSetup.AddHorizontalPageBreak(12);
|
||||
sheet.PageSetup.AddHorizontalPageBreak(5);
|
||||
Assert.That(sheet.PageSetup.RowBreaks, Is.EqualTo(new[] { 5, 10, 12 }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColumnBreaksShouldBeSorted()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddVerticalPageBreak(10);
|
||||
sheet.PageSetup.AddVerticalPageBreak(12);
|
||||
sheet.PageSetup.AddVerticalPageBreak(5);
|
||||
Assert.That(sheet.PageSetup.ColumnBreaks, Is.EqualTo(new[] { 5, 10, 12 }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RowBreaksShiftWhenInsertedRowAbove()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddHorizontalPageBreak(10);
|
||||
sheet.Row(5).InsertRowsAbove(1);
|
||||
Assert.AreEqual(11, sheet.PageSetup.RowBreaks[0]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RowBreaksNotShiftWhenInsertedRowBelow()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddHorizontalPageBreak(10);
|
||||
sheet.Row(15).InsertRowsAbove(1);
|
||||
Assert.AreEqual(10, sheet.PageSetup.RowBreaks[0]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColumnBreaksShiftWhenInsertedColumnBefore()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddVerticalPageBreak(10);
|
||||
sheet.Column(5).InsertColumnsBefore(1);
|
||||
Assert.AreEqual(11, sheet.PageSetup.ColumnBreaks[0]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColumnBreaksNotShiftWhenInsertedColumnAfter()
|
||||
{
|
||||
var wb = new XLWorkbook();
|
||||
IXLWorksheet sheet = wb.AddWorksheet("Sheet1");
|
||||
|
||||
sheet.PageSetup.AddVerticalPageBreak(10);
|
||||
sheet.Column(15).InsertColumnsBefore(1);
|
||||
Assert.AreEqual(10, sheet.PageSetup.ColumnBreaks[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user