| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using OfficeOpenXml; | |
| using System.IO; | |
| using OfficeOpenXml.Drawing; | |
| using System.Drawing; | |
| using OfficeOpenXml.Drawing.Chart; | |
| using OfficeOpenXml.Drawing.Vml; | |
| using OfficeOpenXml.Style; | |
| using System.Data; | |
| using OfficeOpenXml.Table.PivotTable; | |
| using System.Reflection; | |
| namespace EPPlusTest | |
| { | |
| [TestClass] | |
| public class WorkSheetTest : TestBase | |
| { | |
| [TestMethod] | |
| public void RunWorksheetTests() | |
| { | |
| InsertDeleteTestRows(); | |
| InsertDeleteTestColumns(); | |
| LoadData(); | |
| StyleFill(); | |
| Performance(); | |
| RichTextCells(); | |
| TestComments(); | |
| Hyperlink(); | |
| PictureURL(); | |
| CopyOverwrite(); | |
| HideTest(); | |
| VeryHideTest(); | |
| PrinterSettings(); | |
| Address(); | |
| Merge(); | |
| Encoding(); | |
| LoadText(); | |
| LoadDataReader(); | |
| LoadDataTable(); | |
| LoadFromCollectionTest(); | |
| LoadFromEmptyCollectionTest(); | |
| LoadArray(); | |
| WorksheetCopy(); | |
| DefaultColWidth(); | |
| CopyTable(); | |
| AutoFitColumns(); | |
| CopyRange(); | |
| CopyMergedRange(); | |
| ValueError(); | |
| FormulaOverwrite(); | |
| FormulaError(); | |
| StyleNameTest(); | |
| NamedStyles(); | |
| TableTest(); | |
| DefinedName(); | |
| CreatePivotTable(); | |
| AddChartSheet(); | |
| SetHeaderFooterImage(); | |
| SaveWorksheet("Worksheet.xlsx"); | |
| ReadWorkSheet(); | |
| ReadStreamSaveAsStream(); | |
| } | |
| private void AddChartSheet() | |
| { | |
| var chart = _pck.Workbook.Worksheets.AddChart("ChartSheet", eChartType.ColumnClustered); | |
| foreach (var _n in _pck.Workbook.Names) | |
| { | |
| } | |
| //Iterate all collection and make sure no exception is thrown. | |
| foreach (var worksheet in _pck.Workbook.Worksheets) | |
| { | |
| if (!(worksheet is ExcelChartsheet)) | |
| { | |
| foreach (var d in worksheet.Drawings) | |
| { | |
| } | |
| foreach (var d in worksheet.Tables) | |
| { | |
| } | |
| foreach (var d in worksheet.PivotTables) | |
| { | |
| } | |
| foreach (var d in worksheet.Names) | |
| { | |
| } | |
| foreach (var d in worksheet.Comments) | |
| { | |
| } | |
| foreach (var d in worksheet.ConditionalFormatting) | |
| { | |
| } | |
| } | |
| } | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void ReadWorkSheet() | |
| { | |
| FileStream instream = new FileStream(_worksheetPath + @"Worksheet.xlsx", FileMode.Open, FileAccess.ReadWrite); | |
| using (ExcelPackage pck = new ExcelPackage(instream)) | |
| { | |
| var ws = pck.Workbook.Worksheets["Perf"]; | |
| Assert.AreEqual(ws.Cells["H6"].Formula, "B5+B6"); | |
| ws = pck.Workbook.Worksheets["Comment"]; | |
| var comment = ws.Cells["B2"].Comment; | |
| Assert.AreNotEqual(comment, null); | |
| Assert.AreEqual(comment.Author, "Jan Källman"); | |
| ws = pck.Workbook.Worksheets["Hidden"]; | |
| Assert.AreEqual<eWorkSheetHidden>(ws.Hidden, eWorkSheetHidden.Hidden); | |
| ws = pck.Workbook.Worksheets["VeryHidden"]; | |
| Assert.AreEqual<eWorkSheetHidden>(ws.Hidden, eWorkSheetHidden.VeryHidden); | |
| ws = pck.Workbook.Worksheets["RichText"]; | |
| Assert.AreEqual("Room 02 & 03", ws.Cells["G1"].RichText.Text); | |
| ws = pck.Workbook.Worksheets["HeaderImage"]; | |
| //Assert.AreEqual(ws.HeaderFooter.Pictures.Count, 3); | |
| ws = pck.Workbook.Worksheets["newsheet"]; | |
| Assert.AreEqual(ws.Cells["F2"].Style.Font.UnderLine, true); | |
| Assert.AreEqual(ws.Cells["F2"].Style.Font.UnderLineType, ExcelUnderLineType.Double); | |
| Assert.AreEqual(ws.Cells["F3"].Style.Font.UnderLineType, ExcelUnderLineType.SingleAccounting); | |
| Assert.AreEqual(ws.Cells["F5"].Style.Font.UnderLineType, ExcelUnderLineType.None); | |
| Assert.AreEqual(ws.Cells["F5"].Style.Font.UnderLine, false); | |
| } | |
| instream.Close(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void ReadStreamWithTemplateWorkSheet() | |
| { | |
| FileStream instream = new FileStream(_worksheetPath + @"\Worksheet.xlsx", FileMode.Open, FileAccess.Read); | |
| MemoryStream stream = new MemoryStream(); | |
| using (ExcelPackage pck = new ExcelPackage(stream, instream)) | |
| { | |
| var ws = pck.Workbook.Worksheets["Perf"]; | |
| Assert.AreEqual(ws.Cells["H6"].Formula, "B5+B6"); | |
| ws = pck.Workbook.Worksheets["newsheet"]; | |
| Assert.AreEqual(ws.GetValue<DateTime>(20, 21), new DateTime(2010, 1, 1)); | |
| ws = pck.Workbook.Worksheets["Loaded DataTable"]; | |
| Assert.AreEqual(ws.GetValue<string>(2, 1), "Row1"); | |
| Assert.AreEqual(ws.GetValue<int>(2, 2), 1); | |
| Assert.AreEqual(ws.GetValue<bool>(2, 3), true); | |
| Assert.AreEqual(ws.GetValue<double>(2, 4), 1.5); | |
| ws = pck.Workbook.Worksheets["RichText"]; | |
| var r1 = ws.Cells["A1"].RichText[0]; | |
| Assert.AreEqual(r1.Text, "Test"); | |
| Assert.AreEqual(r1.Bold, true); | |
| ws = pck.Workbook.Worksheets["Pic URL"]; | |
| Assert.AreEqual(((ExcelPicture)ws.Drawings["Pic URI"]).Hyperlink, "http://epplus.codeplex.com"); | |
| Assert.AreEqual(pck.Workbook.Worksheets["Address"].GetValue<string>(40, 1), "\b\t"); | |
| pck.SaveAs(new FileInfo(@"Test\Worksheet2.xlsx")); | |
| } | |
| instream.Close(); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void ReadStreamSaveAsStream() | |
| { | |
| if (!File.Exists(_worksheetPath + @"Worksheet.xlsx")) | |
| { | |
| Assert.Inconclusive("Worksheet.xlsx does not exists"); | |
| } | |
| FileStream instream = new FileStream(_worksheetPath + @"Worksheet.xlsx", FileMode.Open, FileAccess.ReadWrite); | |
| MemoryStream stream = new MemoryStream(); | |
| using (ExcelPackage pck = new ExcelPackage(instream)) | |
| { | |
| var ws = pck.Workbook.Worksheets["Names"]; | |
| Assert.AreEqual(ws.Names["FullCol"].Start.Row, 1); | |
| Assert.AreEqual(ws.Names["FullCol"].End.Row, ExcelPackage.MaxRows); | |
| pck.SaveAs(stream); | |
| } | |
| instream.Close(); | |
| } | |
| // | |
| // You can use the following additional attributes as you write your tests: | |
| // | |
| // Use ClassInitialize to run code before running the first test in the class | |
| // Use ClassCleanup to run code after all tests in a class have run | |
| //[Ignore] | |
| //[TestMethod] | |
| public void LoadData() | |
| { | |
| ExcelWorksheet ws = _pck.Workbook.Worksheets.Add("newsheet"); | |
| ws.Cells["U19"].Value = new DateTime(2009, 12, 31); | |
| ws.Cells["U20"].Value = new DateTime(2010, 1, 1); | |
| ws.Cells["U21"].Value = new DateTime(2010, 1, 2); | |
| ws.Cells["U22"].Value = new DateTime(2010, 1, 3); | |
| ws.Cells["U23"].Value = new DateTime(2010, 1, 4); | |
| ws.Cells["U24"].Value = new DateTime(2010, 1, 5); | |
| ws.Cells["U19:U24"].Style.Numberformat.Format = "yyyy-mm-dd"; | |
| ws.Cells["V19"].Value = 100; | |
| ws.Cells["V20"].Value = 102; | |
| ws.Cells["V21"].Value = 101; | |
| ws.Cells["V22"].Value = 103; | |
| ws.Cells["V23"].Value = 105; | |
| ws.Cells["V24"].Value = 104; | |
| ws.Cells["v19:v24"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left; | |
| ws.Cells["v19:v24"].Style.Numberformat.Format = @"$#,##0.00_);($#,##0.00)"; | |
| ws.Cells["X19"].Value = 210; | |
| ws.Cells["X20"].Value = 212; | |
| ws.Cells["X21"].Value = 221; | |
| ws.Cells["X22"].Value = 123; | |
| ws.Cells["X23"].Value = 135; | |
| ws.Cells["X24"].Value = 134; | |
| // add autofilter | |
| ws.Cells["U19:X24"].AutoFilter = true; | |
| ExcelPicture pic = ws.Drawings.AddPicture("Pic1", Properties.Resources.Test1); | |
| pic.SetPosition(150, 140); | |
| ws.Cells["A30"].Value = "Text orientation 45"; | |
| ws.Cells["A30"].Style.TextRotation = 45; | |
| ws.Cells["B30"].Value = "Text orientation 90"; | |
| ws.Cells["B30"].Style.TextRotation = 90; | |
| ws.Cells["C30"].Value = "Text orientation 180"; | |
| ws.Cells["C30"].Style.TextRotation = 180; | |
| ws.Cells["D30"].Value = "Text orientation 38"; | |
| ws.Cells["D30"].Style.TextRotation = 38; | |
| ws.Cells["D30"].Style.Font.Bold = true; | |
| ws.Cells["D30"].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Right; | |
| ws.Workbook.Names.Add("TestName", ws.Cells["B30:E30"]); | |
| ws.Workbook.Names["TestName"].Style.Font.Color.SetColor(Color.Red); | |
| ws.Workbook.Names["TestName"].Offset(1, 0).Value = "Offset test 1"; | |
| ws.Workbook.Names["TestName"].Offset(2, -1, 2, 2).Value = "Offset test 2"; | |
| //Test vertical align | |
| ws.Cells["E19"].Value = "Subscript"; | |
| ws.Cells["E19"].Style.Font.VerticalAlign = ExcelVerticalAlignmentFont.Subscript; | |
| ws.Cells["E20"].Value = "Subscript"; | |
| ws.Cells["E20"].Style.Font.VerticalAlign = ExcelVerticalAlignmentFont.Superscript; | |
| ws.Cells["E21"].Value = "Superscript"; | |
| ws.Cells["E21"].Style.Font.VerticalAlign = ExcelVerticalAlignmentFont.Superscript; | |
| ws.Cells["E21"].Style.Font.VerticalAlign = ExcelVerticalAlignmentFont.None; | |
| ws.Cells["E22"].Value = "Indent 2"; | |
| ws.Cells["E22"].Style.Indent = 2; | |
| ws.Cells["E23"].Value = "Shrink to fit"; | |
| ws.Cells["E23"].Style.ShrinkToFit = true; | |
| ws.Cells["e24"].Value = "ReadingOrder LeftToRight"; | |
| ws.Cells["e24"].Style.ReadingOrder = ExcelReadingOrder.LeftToRight; | |
| ws.Cells["e25"].Value = "ReadingOrder RightToLeft"; | |
| ws.Cells["e25"].Style.ReadingOrder = ExcelReadingOrder.RightToLeft; | |
| ws.Cells["e26"].Value = "ReadingOrder Context"; | |
| ws.Cells["e26"].Style.ReadingOrder = ExcelReadingOrder.ContextDependent; | |
| ws.Cells["e27"].Value = "Default Readingorder"; | |
| //Underline | |
| ws.Cells["F1:F7"].Value = "Underlined"; | |
| ws.Cells["F1"].Style.Font.UnderLineType = ExcelUnderLineType.Single; | |
| ws.Cells["F2"].Style.Font.UnderLineType = ExcelUnderLineType.Double; | |
| ws.Cells["F3"].Style.Font.UnderLineType = ExcelUnderLineType.SingleAccounting; | |
| ws.Cells["F4"].Style.Font.UnderLineType = ExcelUnderLineType.DoubleAccounting; | |
| ws.Cells["F5"].Style.Font.UnderLineType = ExcelUnderLineType.None; | |
| ws.Cells["F6:F7"].Style.Font.UnderLine = true; | |
| ws.Cells["F7"].Style.Font.UnderLine = false; | |
| ws.Cells["E24"].Value = 0; | |
| Assert.AreEqual(ws.Cells["E24"].Text, "0"); | |
| ws.Cells["F7"].Style.Font.UnderLine = false; | |
| ws.Names.Add("SheetName", ws.Cells["A1:A2"]); | |
| ws.View.FreezePanes(3, 5); | |
| foreach (ExcelRangeBase cell in ws.Cells["A1"]) | |
| { | |
| Assert.Fail("A1 is not set"); | |
| } | |
| foreach (ExcelRangeBase cell in ws.Cells[ws.Dimension.Address]) | |
| { | |
| System.Diagnostics.Debug.WriteLine(cell.Address); | |
| } | |
| ////Linq test | |
| var res = from c in ws.Cells[ws.Dimension.Address] where c.Value != null && c.Value.ToString() == "Offset test 1" select c; | |
| foreach (ExcelRangeBase cell in res) | |
| { | |
| System.Diagnostics.Debug.WriteLine(cell.Address); | |
| } | |
| _pck.Workbook.Properties.Author = "Jan Källman"; | |
| _pck.Workbook.Properties.Category = "Category"; | |
| _pck.Workbook.Properties.Comments = "Comments"; | |
| _pck.Workbook.Properties.Company = "Adventure works"; | |
| _pck.Workbook.Properties.Keywords = "Keywords"; | |
| _pck.Workbook.Properties.Title = "Title"; | |
| _pck.Workbook.Properties.Subject = "Subject"; | |
| _pck.Workbook.Properties.Status = "Status"; | |
| _pck.Workbook.Properties.HyperlinkBase = new Uri("http://serversideexcel.com", UriKind.Absolute); | |
| _pck.Workbook.Properties.Manager = "Manager"; | |
| _pck.Workbook.Properties.SetCustomPropertyValue("DateTest", new DateTime(2008, 12, 31)); | |
| TestContext.WriteLine(_pck.Workbook.Properties.GetCustomPropertyValue("DateTest").ToString()); | |
| _pck.Workbook.Properties.SetCustomPropertyValue("Author", "Jan Källman"); | |
| _pck.Workbook.Properties.SetCustomPropertyValue("Count", 1); | |
| _pck.Workbook.Properties.SetCustomPropertyValue("IsTested", false); | |
| _pck.Workbook.Properties.SetCustomPropertyValue("LargeNo", 123456789123); | |
| _pck.Workbook.Properties.SetCustomPropertyValue("Author", 3); | |
| } | |
| const int PERF_ROWS = 5000; | |
| //[Ignore] | |
| //[TestMethod] | |
| public void Performance() | |
| { | |
| ExcelWorksheet ws = _pck.Workbook.Worksheets.Add("Perf"); | |
| TestContext.WriteLine("StartTime {0}", DateTime.Now); | |
| Random r = new Random(); | |
| for (int i = 1; i <= PERF_ROWS; i++) | |
| { | |
| ws.Cells[i, 1].Value = string.Format("Row {0}\n.Test new row\"' öäåü", i); | |
| ws.Cells[i, 2].Value = i; | |
| ws.Cells[i, 2].Style.WrapText = true; | |
| ws.Cells[i, 3].Value = DateTime.Now; | |
| ws.Cells[i, 4].Value = r.NextDouble() * 100000; | |
| } | |
| ws.Cells[1, 2, PERF_ROWS, 2].Style.Numberformat.Format = "#,##0"; | |
| ws.Cells[1, 3, PERF_ROWS, 3].Style.Numberformat.Format = "yyyy-MM-dd HH:mm:ss"; | |
| ws.Cells[1, 4, PERF_ROWS, 4].Style.Numberformat.Format = "#,##0.00"; | |
| ws.Cells[PERF_ROWS + 1, 2].Formula = "SUM(B1:B" + PERF_ROWS.ToString() + ")"; | |
| ws.Column(1).Width = 12; | |
| ws.Column(2).Width = 8; | |
| ws.Column(3).Width = 20; | |
| ws.Column(4).Width = 14; | |
| ws.Cells["A1:C1"].Merge = true; | |
| ws.Cells["A2:A5"].Merge = true; | |
| ws.DeleteRow(1, 1); | |
| ws.InsertRow(1, 1); | |
| ws.InsertRow(3, 1); | |
| ws.DeleteRow(1000, 3, true); | |
| ws.DeleteRow(2000, 1, true); | |
| ws.InsertRow(2001, 4); | |
| ws.InsertRow(2010, 1, 2010); | |
| ws.InsertRow(20000, 2); | |
| ws.DeleteRow(20005, 4, false); | |
| //Single formula | |
| ws.Cells["H3"].Formula = "B2+B3"; | |
| ws.DeleteRow(2, 1, true); | |
| //Shared formula | |
| ws.Cells["H5:H30"].Formula = "B4+B5"; | |
| ws.Cells["H5:H30"].Style.Numberformat.Format = "_(\"$\"* # ##0.00_);_(\"$\"* (# ##0.00);_(\"$\"* \"-\"??_);_(@_)"; | |
| ws.InsertRow(7, 3); | |
| ws.InsertRow(2, 1); | |
| ws.DeleteRow(30, 3, true); | |
| ws.DeleteRow(15, 2, true); | |
| ws.Cells["a1:B100"].Style.Locked = false; | |
| ws.Cells["a1:B12"].Style.Hidden = true; | |
| TestContext.WriteLine("EndTime {0}", DateTime.Now); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void InsertDeleteTestRows() | |
| { | |
| ExcelWorksheet ws = _pck.Workbook.Worksheets.Add("InsertDelete"); | |
| //ws.Cells.Value = 0; | |
| ws.Cells["A1:C5"].Value = 1; | |
| Assert.AreEqual(((object[,])ws.Cells["A1:C5"].Value)[1, 1], 1); | |
| ws.Cells["A1:B3"].Merge = true; | |
| ws.Cells["D3"].Formula = "A2+C5"; | |
| ws.InsertRow(2, 1); | |
| ws.Cells["A10:C15"].Value = 1; | |
| ws.Cells["A11:B13"].Merge = true; | |
| ws.DeleteRow(12, 1, true); | |
| ws.Cells["a1:B100"].Style.Locked = false; | |
| ws.Cells["a1:B12"].Style.Hidden = true; | |
| ws.Protection.IsProtected = true; | |
| ws.Protection.SetPassword("Password"); | |
| var range = ws.Cells["B2:D100"]; | |
| ws.PrinterSettings.PrintArea = null; | |
| ws.PrinterSettings.PrintArea = ws.Cells["B2:D99"]; | |
| ws.PrinterSettings.PrintArea = null; | |
| ws.Row(15).PageBreak = true; | |
| ws.Column(3).PageBreak = true; | |
| ws.View.ShowHeaders = false; | |
| ws.View.PageBreakView = true; | |
| ws.Row(200).Height = 50; | |
| ws.Workbook.CalcMode = ExcelCalcMode.Automatic; | |
| Assert.AreEqual(range.Start.Column, 2); | |
| Assert.AreEqual(range.Start.Row, 2); | |
| Assert.AreEqual(range.Start.Address, "B2"); | |
| Assert.AreEqual(range.End.Column, 4); | |
| Assert.AreEqual(range.End.Row, 100); | |
| Assert.AreEqual(range.End.Address, "D100"); | |
| ExcelAddress addr = new ExcelAddress("B1:D3"); | |
| Assert.AreEqual(addr.Start.Column, 2); | |
| Assert.AreEqual(addr.Start.Row, 1); | |
| Assert.AreEqual(addr.End.Column, 4); | |
| Assert.AreEqual(addr.End.Row, 3); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void InsertDeleteTestColumns() | |
| { | |
| ExcelWorksheet ws = _pck.Workbook.Worksheets.Add("InsertDeleteColumns"); | |
| //ws.Cells.Value = 0; | |
| ws.Cells["A1:C5"].Value = 1; | |
| Assert.AreEqual(((object[,])ws.Cells["A1:C5"].Value)[1, 1], 1); | |
| ws.Cells["A1:B3"].Merge = true; | |
| ws.Cells["D3"].Formula = "A2+C5"; | |
| ws.InsertColumn(1, 1); | |
| ws.Cells["K10:M15"].Value = 1; | |
| ws.Cells["K11:L13"].Merge = true; | |
| ws.DeleteColumn(12, 1); | |
| ws.Cells["X1:Y100"].Style.Locked = false; | |
| ws.Cells["C1:Y12"].Style.Hidden = true; | |
| ws.Protection.IsProtected = true; | |
| ws.Protection.SetPassword("Password"); | |
| var range = ws.Cells["X2:Z100"]; | |
| ws.PrinterSettings.PrintArea = null; | |
| ws.PrinterSettings.PrintArea = ws.Cells["X2:Z99"]; | |
| ws.PrinterSettings.PrintArea = null; | |
| ws.Row(15).PageBreak = true; | |
| ws.Column(3).PageBreak = true; | |
| ws.View.ShowHeaders = false; | |
| ws.View.PageBreakView = true; | |
| ws.Row(200).Height = 50; | |
| ws.Workbook.CalcMode = ExcelCalcMode.Automatic; | |
| //Assert.AreEqual(range.Start.Column, 2); | |
| //Assert.AreEqual(range.Start.Row, 2); | |
| //Assert.AreEqual(range.Start.Address, "B2"); | |
| //Assert.AreEqual(range.End.Column, 4); | |
| //Assert.AreEqual(range.End.Row, 100); | |
| //Assert.AreEqual(range.End.Address, "D100"); | |
| //ExcelAddress addr = new ExcelAddress("B1:D3"); | |
| //Assert.AreEqual(addr.Start.Column, 2); | |
| //Assert.AreEqual(addr.Start.Row, 1); | |
| //Assert.AreEqual(addr.End.Column, 4); | |
| //Assert.AreEqual(addr.End.Row, 3); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void RichTextCells() | |
| { | |
| ExcelWorksheet ws = _pck.Workbook.Worksheets.Add("RichText"); | |
| var rs = ws.Cells["A1"].RichText; | |
| var r1 = rs.Add("Test"); | |
| r1.Bold = true; | |
| r1.Color = Color.Pink; | |
| var r2 = rs.Add(" of"); | |
| r2.Size = 14; | |
| r2.Italic = true; | |
| var r3 = rs.Add(" rich"); | |
| r3.FontName = "Arial"; | |
| r3.Size = 18; | |
| r3.Italic = true; | |
| var r4 = rs.Add("text."); | |
| r4.Size = 8.25f; | |
| r4.Italic = true; | |
| r4.UnderLine = true; | |
| rs = ws.Cells["A3:A4"].RichText; | |
| var r5 = rs.Add("Double"); | |
| r5.Color = Color.PeachPuff; | |
| r5.FontName = "times new roman"; | |
| r5.Size = 16; | |
| var r6 = rs.Add(" cells"); | |
| r6.Color = Color.Red; | |
| r6.UnderLine = true; | |
| rs = ws.Cells["C8"].RichText; | |
| r1 = rs.Add("Blue "); | |
| r1.Color = Color.Blue; | |
| r2 = rs.Add("Red"); | |
| r2.Color = Color.Red; | |
| ws.Cells["G1"].RichText.Add("Room 02 & 03"); | |
| ws.Cells["G2"].RichText.Text = "Room 02 & 03"; | |
| ws = ws = _pck.Workbook.Worksheets.Add("RichText2"); | |
| ws.Cells["A1"].RichText.Text = "Room 02 & 03"; | |
| ws.TabColor = Color.PowderBlue; | |
| r1 = ws.Cells["G3"].RichText.Add("Test"); | |
| r1.Bold = true; | |
| ws.Cells["G3"].RichText.Add(" a new t"); | |
| ws.Cells["G3"].RichText[1].Bold = false; ; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void TestComments() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Comment"); | |
| var comment = ws.Comments.Add(ws.Cells["C3"], "Jan Källman\r\nAuthor\r\n", "JK"); | |
| comment.RichText[0].Bold = true; | |
| comment.RichText[0].PreserveSpace = true; | |
| var rt = comment.RichText.Add("Test comment"); | |
| comment.VerticalAlignment = eTextAlignVerticalVml.Center; | |
| comment = ws.Comments.Add(ws.Cells["A2"], "Jan Källman\r\nAuthor\r\n1", "JK"); | |
| comment = ws.Comments.Add(ws.Cells["A1"], "Jan Källman\r\nAuthor\r\n2", "JK"); | |
| comment.AlternativeText = "Test of AlternetiveText2"; | |
| comment = ws.Comments.Add(ws.Cells["C2"], "Jan Källman\r\nAuthor\r\n3", "JK"); | |
| comment = ws.Comments.Add(ws.Cells["C1"], "Jan Källman\r\nAuthor\r\n5", "JK"); | |
| comment = ws.Comments.Add(ws.Cells["B1"], "Jan Källman\r\nAuthor\r\n7", "JK"); | |
| ws.Comments.Remove(ws.Cells["A2"].Comment); | |
| //comment.HorizontalAlignment = eTextAlignHorizontalVml.Center; | |
| //comment.Visible = true; | |
| //comment.BackgroundColor = Color.Green; | |
| //comment.To.Row += 4; | |
| //comment.To.Column += 2; | |
| //comment.LineStyle = eLineStyleVml.LongDash; | |
| //comment.LineColor = Color.Red; | |
| //comment.LineWidth = (Single)2.5; | |
| //rt.Color = Color.Red; | |
| var rt2 = ws.Cells["B2"].AddComment("Range Added Comment test test test test test test test test test test testtesttesttesttesttesttesttesttesttesttest", "Jan Källman"); | |
| ws.Cells["c3"].Comment.AutoFit = true; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void Address() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Address"); | |
| ws.Cells["A1:A4,B5:B7"].Value = "AddressTest"; | |
| ws.Cells["A1:A4,B5:B7"].Style.Font.Color.SetColor(Color.Red); | |
| ws.Cells["A2:A3,B4:B8"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.LightUp; | |
| ws.Cells["A2:A3,B4:B8"].Style.Fill.BackgroundColor.SetColor(Color.LightGreen); | |
| ws.Cells["2:2"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; | |
| ws.Cells["2:2"].Style.Fill.BackgroundColor.SetColor(Color.LightGreen); | |
| ws.Cells["B:B"].Style.Font.Name = "Times New Roman"; | |
| ws.Cells["C4:G4,H8:H30,B15"].FormulaR1C1 = "RC[-1]+R1C[-1]"; | |
| ws.Cells["C4:G4,H8:H30,B15"].Style.Numberformat.Format = "#,##0.000"; | |
| ws.Cells["G1,G3"].Hyperlink = new ExcelHyperLink("Comment!$A$1", "Comment"); | |
| ws.Cells["G1,G3"].Style.Font.Color.SetColor(Color.Blue); | |
| ws.Cells["G1,G3"].Style.Font.UnderLine = true; | |
| ws.Cells["A1:G5"].Copy(ws.Cells["A50"]); | |
| var ws2 = _pck.Workbook.Worksheets.Add("Copy Cells"); | |
| ws.Cells["1:4"].Copy(ws2.Cells["1:1"]); | |
| ws.Cells["H1:J5"].Merge = true; | |
| ws.Cells["2:3"].Copy(ws.Cells["50:51"]); | |
| ws.Cells["A40"].Value = new string(new char[] { (char)8, (char)9 }); | |
| ExcelRange styleRng = ws.Cells["A1"]; | |
| ExcelStyle tempStyle = styleRng.Style; | |
| var namedStyle = _pck.Workbook.Styles.CreateNamedStyle("HyperLink", tempStyle); | |
| namedStyle.Style.Font.UnderLineType = ExcelUnderLineType.Single; | |
| namedStyle.Style.Font.Color.SetColor(Color.Blue); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void Encoding() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Encoding"); | |
| ws.Cells["A1"].Value = "_x0099_"; | |
| ws.Cells["A2"].Value = " Test \b" + (char)1 + " end\""; | |
| ws.Cells["A3"].Value = "_x0097_ test_x001D_1234"; | |
| ws.Cells["A4"].Value = "test" + (char)31; //Bug issue 14689 //Fixed | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void WorksheetCopy() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Copied Address", _pck.Workbook.Worksheets["Address"]); | |
| var wsCopy = _pck.Workbook.Worksheets.Add("Copied Comment", _pck.Workbook.Worksheets["Comment"]); | |
| ExcelPackage pck2 = new ExcelPackage(); | |
| pck2.Workbook.Worksheets.Add("Copy From other pck", _pck.Workbook.Worksheets["Address"]); | |
| pck2.SaveAs(new FileInfo(_worksheetPath + "copy.xlsx")); | |
| pck2 = null; | |
| Assert.AreEqual(6, wsCopy.Comments.Count); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void TestDelete() | |
| { | |
| string file = _worksheetPath + "test.xlsx"; | |
| if (File.Exists(file)) | |
| File.Delete(file); | |
| Create(file); | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w = pack.Workbook.Worksheets["delete"]; | |
| w.DeleteRow(1, 2); | |
| pack.Save(); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void LoadFromCollectionTest() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("LoadFromCollection"); | |
| List<TestDTO> list = new List<TestDTO>(); | |
| list.Add(new TestDTO() { Id = 1, Name = "Item1", Boolean = false, Date = new DateTime(2011, 1, 1), dto = null, NameVar = "Field 1" }); | |
| list.Add(new TestDTO() { Id = 2, Name = "Item2", Boolean = true, Date = new DateTime(2011, 1, 15), dto = new TestDTO(), NameVar = "Field 2" }); | |
| list.Add(new TestDTO() { Id = 3, Name = "Item3", Boolean = false, Date = new DateTime(2011, 2, 1), dto = null, NameVar = "Field 3" }); | |
| list.Add(new TestDTO() { Id = 4, Name = "Item4", Boolean = true, Date = new DateTime(2011, 4, 19), dto = list[1], NameVar = "Field 4" }); | |
| list.Add(new TestDTO() { Id = 5, Name = "Item5", Boolean = false, Date = new DateTime(2011, 5, 8), dto = null, NameVar = "Field 5" }); | |
| list.Add(new TestDTO() { Id = 6, Name = "Item6", Boolean = true, Date = new DateTime(2010, 3, 27), dto = null, NameVar = "Field 6" }); | |
| list.Add(new TestDTO() { Id = 7, Name = "Item7", Boolean = false, Date = new DateTime(2009, 1, 5), dto = list[3], NameVar = "Field 7" }); | |
| list.Add(new TestDTO() { Id = 8, Name = "Item8", Boolean = true, Date = new DateTime(2018, 12, 31), dto = null, NameVar = "Field 8" }); | |
| list.Add(new TestDTO() { Id = 9, Name = "Item9", Boolean = false, Date = new DateTime(2010, 2, 1), dto = null, NameVar = "Field 9" }); | |
| ws.Cells["A1"].LoadFromCollection(list, true); | |
| ws.Cells["A30"].LoadFromCollection(list, true, OfficeOpenXml.Table.TableStyles.Medium9, BindingFlags.Instance | BindingFlags.Instance, typeof(TestDTO).GetFields()); | |
| ws.Cells["A45"].LoadFromCollection(list, true, OfficeOpenXml.Table.TableStyles.Light1, BindingFlags.Instance | BindingFlags.Instance, new MemberInfo[] { typeof(TestDTO).GetMethod("GetNameID"), typeof(TestDTO).GetField("NameVar") }); | |
| ws.Cells["J1"].LoadFromCollection(from l in list where l.Boolean orderby l.Date select new { Name = l.Name, Id = l.Id, Date = l.Date, NameVariable = l.NameVar }, true, OfficeOpenXml.Table.TableStyles.Dark4); | |
| var ints = new int[] { 1, 3, 4, 76, 2, 5 }; | |
| ws.Cells["A15"].Value = ints; | |
| } | |
| //[TestMethod] | |
| public void LoadFromEmptyCollectionTest() | |
| { | |
| if (_pck == null) _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("LoadFromEmpyCollection"); | |
| List<TestDTO> listDTO = new List<TestDTO>(0); | |
| //List<int> list = new List<int>(0); | |
| ws.Cells["A1"].LoadFromCollection(listDTO, true); | |
| ws.Cells["A5"].LoadFromCollection(listDTO, true, OfficeOpenXml.Table.TableStyles.Medium9, BindingFlags.Instance | BindingFlags.Instance, typeof(TestDTO).GetFields()); | |
| ws.Cells["A10"].LoadFromCollection(listDTO, true, OfficeOpenXml.Table.TableStyles.Light1, BindingFlags.Instance | BindingFlags.Instance, new MemberInfo[] { typeof(TestDTO).GetMethod("GetNameID"), typeof(TestDTO).GetField("NameVar") }); | |
| ws.Cells["A15"].LoadFromCollection(from l in listDTO where l.Boolean orderby l.Date select new { Name = l.Name, Id = l.Id, Date = l.Date, NameVariable = l.NameVar }, true, OfficeOpenXml.Table.TableStyles.Dark4); | |
| ws.Cells["A20"].LoadFromCollection(listDTO, false); | |
| } | |
| [TestMethod] | |
| public void LoadFromOneCollectionTest() | |
| { | |
| if (_pck == null) _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("LoadFromEmpyCollection"); | |
| List<TestDTO> listDTO = new List<TestDTO>(0) { new TestDTO() { Name = "Single" } }; | |
| //List<int> list = new List<int>(0); | |
| var r = ws.Cells["A1"].LoadFromCollection(listDTO, true); | |
| Assert.AreEqual(2, r.Rows); | |
| var r2 = ws.Cells["A5"].LoadFromCollection(listDTO, false); | |
| Assert.AreEqual(1, r2.Rows); | |
| } | |
| static void Create(string file) | |
| { | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w = pack.Workbook.Worksheets.Add("delete"); | |
| w.Cells[1, 1].Value = "test"; | |
| w.Cells[1, 2].Value = "test"; | |
| w.Cells[2, 1].Value = "to delete"; | |
| w.Cells[2, 2].Value = "to delete"; | |
| w.Cells[3, 1].Value = "3Left"; | |
| w.Cells[3, 2].Value = "3Left"; | |
| w.Cells[4, 1].Formula = "B3+C3"; | |
| w.Cells[4, 2].Value = "C3+D3"; | |
| pack.Save(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void RowStyle() | |
| { | |
| FileInfo newFile = new FileInfo(_worksheetPath + @"sample8.xlsx"); | |
| if (newFile.Exists) | |
| { | |
| newFile.Delete(); // ensures we create a new workbook | |
| //newFile = new FileInfo(dir + @"sample8.xlsx"); | |
| } | |
| ExcelPackage package = new ExcelPackage(); | |
| //Load the sheet with one string column, one date column and a few random numbers. | |
| var ws = package.Workbook.Worksheets.Add("First line test"); | |
| ws.Cells[1, 1].Value = "1; 1"; | |
| ws.Cells[2, 1].Value = "2; 1"; | |
| ws.Cells[1, 2].Value = "1; 2"; | |
| ws.Cells[2, 2].Value = "2; 2"; | |
| ws.Row(1).Style.Font.Bold = true; | |
| ws.Column(1).Style.Font.Bold = true; | |
| package.SaveAs(newFile); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void HideTest() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Hidden"); | |
| ws.Cells["A1"].Value = "This workbook is hidden"; | |
| ws.Hidden = eWorkSheetHidden.Hidden; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void Hyperlink() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("HyperLinks"); | |
| var hl = new ExcelHyperLink("G1", "Till G1"); | |
| hl.ToolTip = "Link to cell G1"; | |
| ws.Cells["A1"].Hyperlink = hl; | |
| //ws.Cells["A2"].Hyperlink = new ExcelHyperLink("mailto:ecsomany@google:huszar", UriKind.Absolute); //Invalid URL will throw an Exception | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void VeryHideTest() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("VeryHidden"); | |
| ws.Cells["a1"].Value = "This workbook is hidden"; | |
| ws.Hidden = eWorkSheetHidden.VeryHidden; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void PrinterSettings() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Sod/Hydroseed"); | |
| ws.Cells[1, 1].Value = "1; 1"; | |
| ws.Cells[2, 1].Value = "2; 1"; | |
| ws.Cells[1, 2].Value = "1; 2"; | |
| ws.Cells[2, 2].Value = "2; 2"; | |
| ws.Cells[1, 1, 1, 2].AutoFilter = true; | |
| ws.PrinterSettings.BlackAndWhite = true; | |
| ws.PrinterSettings.ShowGridLines = true; | |
| ws.PrinterSettings.ShowHeaders = true; | |
| ws.PrinterSettings.PaperSize = ePaperSize.A4; | |
| ws.PrinterSettings.RepeatRows = new ExcelAddress("1:1"); | |
| ws.PrinterSettings.RepeatColumns = new ExcelAddress("A:A"); | |
| ws.PrinterSettings.Draft = true; | |
| var r = ws.Cells["A26"]; | |
| r.Value = "X"; | |
| r.Worksheet.Row(26).PageBreak = true; | |
| ws.PrinterSettings.PrintArea = ws.Cells["A1:B2"]; | |
| ws.PrinterSettings.HorizontalCentered = true; | |
| ws.PrinterSettings.VerticalCentered = true; | |
| ws.Select(new ExcelAddress("3:4,E5:F6")); | |
| ws = _pck.Workbook.Worksheets["RichText"]; | |
| ws.PrinterSettings.RepeatColumns = ws.Cells["A:B"]; | |
| ws.PrinterSettings.RepeatRows = ws.Cells["1:11"]; | |
| ws.PrinterSettings.TopMargin = 1M; | |
| ws.PrinterSettings.LeftMargin = 1M; | |
| ws.PrinterSettings.BottomMargin = 1M; | |
| ws.PrinterSettings.RightMargin = 1M; | |
| ws.PrinterSettings.Orientation = eOrientation.Landscape; | |
| ws.PrinterSettings.PaperSize = ePaperSize.A4; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void StyleNameTest() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("StyleNameTest"); | |
| ws.Cells[1, 1].Value = "R1 C1"; | |
| ws.Cells[1, 2].Value = "R1 C2"; | |
| ws.Cells[1, 3].Value = "R1 C3"; | |
| ws.Cells[2, 1].Value = "R2 C1"; | |
| ws.Cells[2, 2].Value = "R2 C2"; | |
| ws.Cells[2, 3].Value = "R2 C3"; | |
| ws.Cells[3, 1].Value = double.PositiveInfinity; | |
| ws.Cells[3, 2].Value = double.NegativeInfinity; | |
| ws.Cells[4, 1].CreateArrayFormula("A1+B1"); | |
| var ns = _pck.Workbook.Styles.CreateNamedStyle("TestStyle"); | |
| ns.Style.Font.Bold = true; | |
| ws.Cells.Style.Locked = true; | |
| ws.Cells["A1:C1"].StyleName = "TestStyle"; | |
| ws.DefaultRowHeight = 35; | |
| ws.Cells["A1:C4"].Style.Locked = false; | |
| ws.Protection.IsProtected = true; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void ValueError() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("ValueError"); | |
| ws.Cells[1, 1].Value = "Domestic Violence and the Professional"; | |
| var rt = ws.Cells[1, 2].RichText.Add("Domestic Violence and the Professional 2"); | |
| TestContext.WriteLine(rt.Bold.ToString()); | |
| rt.Bold = true; | |
| TestContext.WriteLine(rt.Bold.ToString()); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void FormulaError() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("FormulaError"); | |
| ws.Cells["D5"].Formula = "COUNTIF(A1:A100,\"Miss\")"; | |
| ws.Cells["A1:K3"].Formula = "A3+A4"; | |
| ws.Cells["A4"].FormulaR1C1 = "+ROUNDUP(RC[1]/10,0)*10"; | |
| ws = _pck.Workbook.Worksheets.Add("Sheet-RC1"); | |
| ws.Cells["A4"].FormulaR1C1 = "+ROUNDUP('Sheet-RC1'!RC[1]/10,0)*10"; | |
| //ws.Cells["B2:I2"].Formula = ""; //Error | |
| } | |
| [TestMethod, Ignore] | |
| public void FormulaArray() | |
| { | |
| _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("FormulaError"); | |
| ws.Cells["E2:E5"].CreateArrayFormula("FREQUENCY(B2:B18,C2:C5)"); | |
| _pck.SaveAs(new FileInfo("c:\\temp\\arrayformula.xlsx")); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void PictureURL() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Pic URL"); | |
| ExcelHyperLink hl = new ExcelHyperLink("http://epplus.codeplex.com"); | |
| hl.ToolTip = "Screen Tip"; | |
| ws.Drawings.AddPicture("Pic URI", Properties.Resources.Test1, hl); | |
| } | |
| [TestMethod] | |
| public void PivotTableTest() | |
| { | |
| _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("PivotTable"); | |
| ws.Cells["A1"].LoadFromArrays(new object[][] { new[] { "A", "B", "C", "D" } }); | |
| ws.Cells["A2"].LoadFromArrays(new object[][] | |
| { | |
| new object [] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, | |
| new object [] { 9, 8, 7 ,6, 5, 4, 3, 2, 1, 0 }, | |
| new object [] { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55} | |
| }); | |
| var table = ws.Tables.Add(ws.Cells["A1:D4"], "PivotData"); | |
| ws.PivotTables.Add(ws.Cells["G1"], ws.Cells["A1:D4"], "PivotTable"); | |
| Assert.AreEqual("PivotStyleMedium9", ws.PivotTables["PivotTable"].StyleName); | |
| } | |
| [TestMethod] | |
| [ExpectedException(typeof(ArgumentException))] | |
| public void TestTableNameCanNotStartsWithNumber() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Table"); | |
| var tbl = ws.Tables.Add(ws.Cells["A1"], "5TestTable"); | |
| } | |
| [TestMethod] | |
| [ExpectedException(typeof(ArgumentException))] | |
| public void TestTableNameCanNotContainWhiteSpaces() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Table"); | |
| var tbl = ws.Tables.Add(ws.Cells["A1"], "Test Table"); | |
| } | |
| [TestMethod] | |
| public void TestTableNameCanStartsWithBackSlash() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Table"); | |
| var tbl = ws.Tables.Add(ws.Cells["A1"], "\\TestTable"); | |
| } | |
| [TestMethod] | |
| public void TestTableNameCanStartsWithUnderscore() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Table"); | |
| var tbl = ws.Tables.Add(ws.Cells["A1"], "_TestTable"); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void TableTest() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Table"); | |
| ws.Cells["B1"].Value = 123; | |
| var tbl = ws.Tables.Add(ws.Cells["B1:P12"], "TestTable"); | |
| tbl.TableStyle = OfficeOpenXml.Table.TableStyles.Custom; | |
| tbl.ShowFirstColumn = true; | |
| tbl.ShowTotal = true; | |
| tbl.ShowHeader = true; | |
| tbl.ShowLastColumn = true; | |
| tbl.ShowFilter = false; | |
| Assert.AreEqual(tbl.ShowFilter, false); | |
| ws.Cells["K2"].Value = 5; | |
| ws.Cells["J3"].Value = 4; | |
| tbl.Columns[8].TotalsRowFunction = OfficeOpenXml.Table.RowFunctions.Sum; | |
| tbl.Columns[9].TotalsRowFormula = string.Format("SUM([{0}])", tbl.Columns[9].Name); | |
| tbl.Columns[14].CalculatedColumnFormula = "TestTable[[#This Row],[123]]+TestTable[[#This Row],[Column2]]"; | |
| ws.Cells["B2"].Value = 1; | |
| ws.Cells["B3"].Value = 2; | |
| ws.Cells["B4"].Value = 3; | |
| ws.Cells["B5"].Value = 4; | |
| ws.Cells["B6"].Value = 5; | |
| ws.Cells["B7"].Value = 6; | |
| ws.Cells["B8"].Value = 7; | |
| ws.Cells["B9"].Value = 8; | |
| ws.Cells["B10"].Value = 9; | |
| ws.Cells["B11"].Value = 10; | |
| ws.Cells["B12"].Value = 11; | |
| ws.Cells["C7"].Value = "Table test"; | |
| ws.Cells["C8"].Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| ws.Cells["C8"].Style.Fill.BackgroundColor.SetColor(Color.Red); | |
| tbl = ws.Tables.Add(ws.Cells["a12:a13"], ""); | |
| tbl = ws.Tables.Add(ws.Cells["C16:Y35"], ""); | |
| tbl.TableStyle = OfficeOpenXml.Table.TableStyles.Medium14; | |
| tbl.ShowFirstColumn = true; | |
| tbl.ShowLastColumn = true; | |
| tbl.ShowColumnStripes = true; | |
| Assert.AreEqual(tbl.ShowFilter, true); | |
| tbl.Columns[2].Name = "Test Column Name"; | |
| ws.Cells["G50"].Value = "Timespan"; | |
| ws.Cells["G51"].Value = new DateTime(new TimeSpan(1, 1, 10).Ticks); //new DateTime(1899, 12, 30, 1, 1, 10); | |
| ws.Cells["G52"].Value = new DateTime(1899, 12, 30, 2, 3, 10); | |
| ws.Cells["G53"].Value = new DateTime(1899, 12, 30, 3, 4, 10); | |
| ws.Cells["G54"].Value = new DateTime(1899, 12, 30, 4, 5, 10); | |
| ws.Cells["G51:G55"].Style.Numberformat.Format = "HH:MM:SS"; | |
| tbl = ws.Tables.Add(ws.Cells["G50:G54"], ""); | |
| tbl.ShowTotal = true; | |
| tbl.ShowFilter = false; | |
| tbl.Columns[0].TotalsRowFunction = OfficeOpenXml.Table.RowFunctions.Sum; | |
| } | |
| [TestMethod] | |
| public void TableDeleteTest() | |
| { | |
| using (var pkg = new ExcelPackage()) | |
| { | |
| var wb = pkg.Workbook; | |
| var sheets = new[] | |
| { | |
| wb.Worksheets.Add("WorkSheet A"), | |
| wb.Worksheets.Add("WorkSheet B") | |
| }; | |
| for (int i = 1; i <= 4; i++) | |
| { | |
| var cell = sheets[0].Cells[1, i]; | |
| cell.Value = cell.Address + "_"; | |
| cell = sheets[1].Cells[1, i]; | |
| cell.Value = cell.Address + "_"; | |
| } | |
| for (int i = 6; i <= 11; i++) | |
| { | |
| var cell = sheets[0].Cells[3, i]; | |
| cell.Value = cell.Address + "_"; | |
| cell = sheets[1].Cells[3, i]; | |
| cell.Value = cell.Address + "_"; | |
| } | |
| var tables = new[] | |
| { | |
| sheets[1].Tables.Add(sheets[1].Cells["A1:D73"], "Tablea"), | |
| sheets[0].Tables.Add(sheets[0].Cells["A1:D73"], "Table2"), | |
| sheets[1].Tables.Add(sheets[1].Cells["F3:K10"], "Tableb"), | |
| sheets[0].Tables.Add(sheets[0].Cells["F3:K10"], "Table3"), | |
| }; | |
| Assert.AreEqual(5, wb._nextTableID); | |
| Assert.AreEqual(1, tables[0].Id); | |
| Assert.AreEqual(2, tables[1].Id); | |
| try | |
| { | |
| sheets[0].Tables.Delete("Tablea"); | |
| Assert.Fail("ArgumentException should have been thrown."); | |
| } | |
| catch (ArgumentOutOfRangeException) { } | |
| sheets[1].Tables.Delete("Tablea"); | |
| Assert.AreEqual(1, tables[1].Id); | |
| Assert.AreEqual(2, tables[2].Id); | |
| try | |
| { | |
| sheets[1].Tables.Delete(4); | |
| Assert.Fail("ArgumentException should have been thrown."); | |
| } | |
| catch (ArgumentOutOfRangeException) { } | |
| var range = sheets[0].Cells[sheets[0].Tables[1].Address.Address]; | |
| sheets[0].Tables.Delete(1, true); | |
| foreach (var cell in range) | |
| { | |
| Assert.IsNull(cell.Value); | |
| } | |
| } | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void CopyTable() | |
| { | |
| _pck.Workbook.Worksheets.Copy("File4", "Copied table"); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void CopyRange() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("CopyTest"); | |
| ws.Cells["A1"].Value = "Single Cell"; | |
| ws.Cells["A2"].Value = "Merged Cells"; | |
| ws.Cells["A2:D30"].Merge = true; | |
| ws.Cells["A1"].Style.Font.Bold = true; | |
| ws.Cells["G4:H5"].Merge = true; | |
| ws.Cells["B3:C5"].Copy(ws.Cells["G4"]); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void CopyMergedRange() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("CopyMergedRangeTest"); | |
| ws.Cells["A11:C11"].Merge = true; | |
| ws.Cells["A12:C12"].Merge = true; | |
| var source = ws.Cells["A11:C12"]; | |
| var target = ws.Cells["A21"]; | |
| source.Copy(target); | |
| var a21 = ws.Cells[21, 1]; | |
| var a22 = ws.Cells[22, 1]; | |
| Assert.IsTrue(a21.Merge); | |
| Assert.IsTrue(a22.Merge); | |
| //Assert.AreNotEqual(a21.MergeId, a22.MergeId); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void CopyPivotTable() | |
| { | |
| _pck.Workbook.Worksheets.Copy("Pivot-Group Date", "Copied Pivottable 1"); | |
| _pck.Workbook.Worksheets.Copy("Pivot-Group Number", "Copied Pivottable 2"); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Stylebug() | |
| { | |
| ExcelPackage p = new ExcelPackage(new FileInfo(@"c:\temp\FullProjecte.xlsx")); | |
| var ws = p.Workbook.Worksheets.First(); | |
| ws.Cells[12, 1].Value = 0; | |
| ws.Cells[12, 2].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[12, 3].Value = "Federico Lois"; | |
| ws.Cells[12, 4].Value = "Nakami"; | |
| ws.Cells[12, 5].Value = "Hores"; | |
| ws.Cells[12, 7].Value = 120; | |
| ws.Cells[12, 8].Value = "A definir"; | |
| ws.Cells[12, 9].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[12, 10].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[12, 11].Value = "Transferència"; | |
| ws.InsertRow(13, 1, 12); | |
| ws.Cells[13, 1].Value = 0; | |
| ws.Cells[13, 2].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[13, 3].Value = "Federico Lois"; | |
| ws.Cells[13, 4].Value = "Nakami"; | |
| ws.Cells[13, 5].Value = "Hores"; | |
| ws.Cells[13, 7].Value = 120; | |
| ws.Cells[13, 8].Value = "A definir"; | |
| ws.Cells[13, 9].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[13, 10].Value = new DateTime(2010, 9, 14); | |
| ws.Cells[13, 11].Value = "Transferència"; | |
| ws.InsertRow(14, 1, 13); | |
| ws.InsertRow(19, 1, 19); | |
| ws.InsertRow(26, 1, 26); | |
| ws.InsertRow(33, 1, 33); | |
| p.SaveAs(new FileInfo(@"c:\temp\FullProjecte_new.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void ReadBug() | |
| { | |
| using (var package = new ExcelPackage(new FileInfo(@"c:\temp\error.xlsx"))) | |
| { | |
| var fulla = package.Workbook.Worksheets.FirstOrDefault(); | |
| var r = fulla == null ? null : fulla.Cells["a:a"] | |
| .Where(t => !string.IsNullOrWhiteSpace(t.Text)).Select(cell => cell.Value.ToString()) | |
| .ToList(); | |
| } | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void FormulaOverwrite() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("FormulaOverwrite"); | |
| //Inside | |
| ws.Cells["A1:G12"].Formula = "B1+C1"; | |
| ws.Cells["B2:C3"].Formula = "G2+E1"; | |
| //Top bottom overwrite | |
| ws.Cells["A14:G26"].Formula = "B1+C1+D1"; | |
| ws.Cells["B13:C28"].Formula = "G2+E1"; | |
| //Top bottom overwrite | |
| ws.Cells["B30:E42"].Formula = "B1+C1+$D$1"; | |
| ws.Cells["A32:H33"].Formula = "G2+E1"; | |
| ws.Cells["A50:A59"].CreateArrayFormula("C50+D50"); | |
| ws.Cells["A1"].Value = "test"; | |
| ws.Cells["A15"].Value = "Värde"; | |
| ws.Cells["C12"].AddComment("Test", "JJOD"); | |
| ws.Cells["D12:I12"].Merge = true; | |
| ws.Cells["D12:I12"].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Left; | |
| ws.Cells["D12:I12"].Style.VerticalAlignment = OfficeOpenXml.Style.ExcelVerticalAlignment.Top; | |
| ws.Cells["D12:I12"].Style.WrapText = true; | |
| ws.Cells["F1:F3"].Formula = "F2+F3"; | |
| ws.Cells["J1:J3"].Formula = "F2+F3"; | |
| ws.Cells["F1:F3"].Formula = "F5+F6"; //Overwrite same range | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void DefinedName() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Names"); | |
| ws.Names.Add("RefError", ws.Cells["#REF!"]); | |
| ws.Cells["A1"].Value = "Test"; | |
| ws.Cells["A1"].Style.Font.Size = 8.5F; | |
| ws.Names.Add("Address", ws.Cells["A2:A3"]); | |
| ws.Cells["Address"].Value = 1; | |
| ws.Names.AddValue("Value", 5); | |
| ws.Names.Add("FullRow", ws.Cells["2:2"]); | |
| ws.Names.Add("FullCol", ws.Cells["A:A"]); | |
| //ws.Names["Value"].Style.Border.Bottom.Color.SetColor(Color.Black); | |
| ws.Names.AddFormula("Formula", "Names!A2+Names!A3+Names!Value"); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void URL() | |
| { | |
| var p = new ExcelPackage(new FileInfo(@"c:\temp\url.xlsx")); | |
| foreach (var ws in p.Workbook.Worksheets) | |
| { | |
| } | |
| p.SaveAs(new FileInfo(@"c:\temp\urlsaved.xlsx")); | |
| } | |
| //[TestMethod] | |
| public void LoadDataReader() | |
| { | |
| if (_pck == null) _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("Loaded DataReader"); | |
| ExcelRangeBase range; | |
| using (var dt = new DataTable()) | |
| { | |
| dt.Columns.Add("String", typeof(string)); | |
| dt.Columns.Add("Int", typeof(int)); | |
| dt.Columns.Add("Bool", typeof(bool)); | |
| dt.Columns.Add("Double", typeof(double)); | |
| var dr = dt.NewRow(); | |
| dr[0] = "Row1"; | |
| dr[1] = 1; | |
| dr[2] = true; | |
| dr[3] = 1.5; | |
| dt.Rows.Add(dr); | |
| dr = dt.NewRow(); | |
| dr[0] = "Row2"; | |
| dr[1] = 2; | |
| dr[2] = false; | |
| dr[3] = 2.25; | |
| dt.Rows.Add(dr); | |
| //dr = dt.NewRow(); | |
| //dr[0] = "Row3"; | |
| //dr[1] = 3; | |
| //dr[2] = true; | |
| //dr[3] = 3.125; | |
| //dt.Rows.Add(dr); | |
| using (var reader = dt.CreateDataReader()) | |
| { | |
| range = ws.Cells["A1"].LoadFromDataReader(reader, true, "My_Table", | |
| OfficeOpenXml.Table.TableStyles.Medium5); | |
| } | |
| Assert.AreEqual(1, range.Start.Column); | |
| Assert.AreEqual(4, range.End.Column); | |
| Assert.AreEqual(1, range.Start.Row); | |
| Assert.AreEqual(3, range.End.Row); | |
| using (var reader = dt.CreateDataReader()) | |
| { | |
| range = ws.Cells["A5"].LoadFromDataReader(reader, false, "My_Table2", | |
| OfficeOpenXml.Table.TableStyles.Medium5); | |
| } | |
| Assert.AreEqual(1, range.Start.Column); | |
| Assert.AreEqual(4, range.End.Column); | |
| Assert.AreEqual(5, range.Start.Row); | |
| Assert.AreEqual(6, range.End.Row); | |
| } | |
| } | |
| //[TestMethod, Ignore] | |
| public void LoadDataTable() | |
| { | |
| if (_pck == null) _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("Loaded DataTable"); | |
| var dt = new DataTable(); | |
| dt.Columns.Add("String", typeof(string)); | |
| dt.Columns.Add("Int", typeof(int)); | |
| dt.Columns.Add("Bool", typeof(bool)); | |
| dt.Columns.Add("Double", typeof(double)); | |
| var dr = dt.NewRow(); | |
| dr[0] = "Row1"; | |
| dr[1] = 1; | |
| dr[2] = true; | |
| dr[3] = 1.5; | |
| dt.Rows.Add(dr); | |
| dr = dt.NewRow(); | |
| dr[0] = "Row2"; | |
| dr[1] = 2; | |
| dr[2] = false; | |
| dr[3] = 2.25; | |
| dt.Rows.Add(dr); | |
| dr = dt.NewRow(); | |
| dr[0] = "Row3"; | |
| dr[1] = 3; | |
| dr[2] = true; | |
| dr[3] = 3.125; | |
| dt.Rows.Add(dr); | |
| ws.Cells["A1"].LoadFromDataTable(dt, true, OfficeOpenXml.Table.TableStyles.Medium5); | |
| //worksheet.Cells[startRow, 7, worksheet.Dimension.End.Row, 7].FormulaR1C1 = "=IF(RC[-2]=0,0,RC[-1]/RC[-2])"; | |
| ws.Tables[0].Columns[1].TotalsRowFunction = OfficeOpenXml.Table.RowFunctions.Sum; | |
| ws.Tables[0].ShowTotal = true; | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void LoadEmptyDataTable() | |
| { | |
| if (_pck == null) _pck = new ExcelPackage(); | |
| var ws = _pck.Workbook.Worksheets.Add("Loaded Empty DataTable"); | |
| var dt = new DataTable(); | |
| dt.Columns.Add(new DataColumn("col1")); | |
| dt.Columns.Add(new DataColumn("col2")); | |
| ws.Cells["A1"].LoadFromDataTable(dt, true); | |
| ws.Cells["D1"].LoadFromDataTable(dt, false); | |
| } | |
| [TestMethod] | |
| public void LoadText_Bug15015() | |
| { | |
| var package = new ExcelPackage(); | |
| var ws = package.Workbook.Worksheets.Add("Loaded Text"); | |
| ws.Cells["A1"].LoadFromText("\"text with eol,\r\n in a cell\",\"other value\"", new ExcelTextFormat { TextQualifier = '"', EOL = ",\r\n", Delimiter = ',' }); | |
| } | |
| [TestMethod] | |
| public void LoadText_Bug15015_Negative() | |
| { | |
| var package = new ExcelPackage(); | |
| var ws = package.Workbook.Worksheets.Add("Loaded Text"); | |
| bool exceptionThrown = false; | |
| try | |
| { | |
| ws.Cells["A1"].LoadFromText("\"text with eol,\r\n", | |
| new ExcelTextFormat { TextQualifier = '"', EOL = ",\r\n", Delimiter = ',' }); | |
| } | |
| catch (Exception e) | |
| { | |
| Assert.AreEqual("Text delimiter is not closed in line : \"text with eol", e.Message, "Exception message"); | |
| exceptionThrown = true; | |
| } | |
| Assert.IsTrue(exceptionThrown, "Exception thrown"); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void LoadText() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Loaded Text"); | |
| ws.Cells["A1"].LoadFromText("1.2"); | |
| ws.Cells["A2"].LoadFromText("1,\"Test av data\",\"12,2\",\"\"Test\"\""); | |
| ws.Cells["A3"].LoadFromText("\"1,3\",\"Test av \"\"data\",\"12,2\",\"Test\"\"\"", new ExcelTextFormat() { TextQualifier = '"' }); | |
| ws = _pck.Workbook.Worksheets.Add("File1"); | |
| // ws.Cells["A1"].LoadFromText(new FileInfo(@"c:\temp\csv\et1c1004.csv"), new ExcelTextFormat() {SkipLinesBeginning=3,SkipLinesEnd=1, EOL="\n"}); | |
| ws = _pck.Workbook.Worksheets.Add("File2"); | |
| //ws.Cells["A1"].LoadFromText(new FileInfo(@"c:\temp\csv\etiv2812.csv"), new ExcelTextFormat() { SkipLinesBeginning = 3, SkipLinesEnd = 1, EOL = "\n" }); | |
| //ws = _pck.Workbook.Worksheets.Add("File3"); | |
| //ws.Cells["A1"].LoadFromText(new FileInfo(@"c:\temp\csv\last_gics.txt"), new ExcelTextFormat() { SkipLinesBeginning = 1, Delimiter='|'}); | |
| ws = _pck.Workbook.Worksheets.Add("File4"); | |
| //ws.Cells["A1"].LoadFromText(new FileInfo(@"c:\temp\csv\20060927.custom_open_positions.cdf.SPP"), new ExcelTextFormat() { SkipLinesBeginning = 2, SkipLinesEnd=2, TextQualifier='"', DataTypes=new eDataTypes[] {eDataTypes.Number,eDataTypes.String, eDataTypes.Number, eDataTypes.Number, eDataTypes.Number, eDataTypes.String, eDataTypes.Number, eDataTypes.Number, eDataTypes.String, eDataTypes.String, eDataTypes.Number, eDataTypes.Number, eDataTypes.Number}}, | |
| // OfficeOpenXml.Table.TableStyles.Medium27, true); | |
| ws.Cells["A1"].LoadFromText("1,\"Test\",\"\",\"\"\"\",3", new ExcelTextFormat() { TextQualifier = '\"' }); | |
| var style = _pck.Workbook.Styles.CreateNamedStyle("RedStyle"); | |
| style.Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| style.Style.Fill.BackgroundColor.SetColor(Color.Red); | |
| //var tbl = ws.Tables[ws.Tables.Count - 1]; | |
| //tbl.ShowTotal = true; | |
| //tbl.TotalsRowCellStyle = "RedStyle"; | |
| //tbl.HeaderRowCellStyle = "RedStyle"; | |
| } | |
| [TestMethod] | |
| public void TestRepeatRowsAndColumnsTest() | |
| { | |
| var p = new ExcelPackage(); | |
| var w = p.Workbook.Worksheets.Add("RepeatRowsAndColumnsTest"); | |
| w.PrinterSettings.RepeatColumns = new ExcelAddress("A:A"); | |
| w.PrinterSettings.RepeatRows = new ExcelAddress("1:1"); | |
| Assert.IsNotNull(w.PrinterSettings.RepeatColumns); | |
| Assert.IsNotNull(w.PrinterSettings.RepeatRows); // Fails! | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void Merge() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Merge"); | |
| ws.Cells["A1:A4"].Merge = true; | |
| ws.Cells["C1:C4,C8:C12"].Merge = true; | |
| ws.Cells["D13:E18,G5,U32:U45"].Merge = true; | |
| ws.Cells["D13:E18,G5,U32:U45"].Style.WrapText = true; | |
| //ws.Cells["50:52"].Merge = true; | |
| ws.Cells["AA:AC"].Merge = true; | |
| ws.SetValue(13, 4, "Merged\r\nnew row"); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void DefaultColWidth() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("DefColWidth"); | |
| ws.DefaultColWidth = 45; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void LoadArray() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Loaded Array"); | |
| List<object[]> testArray = new List<object[]>() { new object[] { 3, 4, 5, 6 }, new string[] { "Test1", "test", "5", "6" } }; | |
| ws.Cells["A1"].LoadFromArrays(testArray); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void DefColWidthBug() | |
| { | |
| ExcelWorkbook book = _pck.Workbook; | |
| ExcelWorksheet sheet = book.Worksheets.Add("Gebruikers"); | |
| sheet.DefaultColWidth = 25d; | |
| //sheet.defaultRowHeight = 15d; // needed to make sure the resulting file is valid! | |
| // Create the header row | |
| sheet.Cells[1, 1].Value = "Afdeling code"; | |
| sheet.Cells[1, 2].Value = "Afdeling naam"; | |
| sheet.Cells[1, 3].Value = "Voornaam"; | |
| sheet.Cells[1, 4].Value = "Tussenvoegsel"; | |
| sheet.Cells[1, 5].Value = "Achternaam"; | |
| sheet.Cells[1, 6].Value = "Gebruikersnaam"; | |
| sheet.Cells[1, 7].Value = "E-mail adres"; | |
| ExcelRange headerRow = sheet.Cells[1, 1, 1, 7]; | |
| headerRow.Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thin; | |
| headerRow.Style.Font.Size = 12; | |
| headerRow.Style.Font.Bold = true; | |
| //// Create a context for retrieving the users | |
| //using (PalauDataContext context = new PalauDataContext()) | |
| //{ | |
| // int currentRow = 2; | |
| // // iterate through all users in the export and add their info | |
| // // to the worksheet. | |
| // foreach (vw_ExportUser user in | |
| // context.vw_ExportUsers | |
| // .OrderBy(u => u.DepartmentCode) | |
| // .ThenBy(u => u.AspNetUserName)) | |
| // { | |
| // sheet.Cells[currentRow, 1].Value = user.DepartmentCode; | |
| // sheet.Cells[currentRow, 2].Value = user.DepartmentName; | |
| // sheet.Cells[currentRow, 3].Value = user.UserFirstName; | |
| // sheet.Cells[currentRow, 4].Value = user.UserInfix; | |
| // sheet.Cells[currentRow, 5].Value = user.UserSurname; | |
| // sheet.Cells[currentRow, 6].Value = user.AspNetUserName; | |
| // sheet.Cells[currentRow, 7].Value = user.AspNetEmail; | |
| // currentRow++; | |
| // } | |
| //} | |
| // return the filled Excel workbook | |
| // return pkg | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void CloseProblem() | |
| { | |
| ExcelPackage pck = new ExcelPackage(); | |
| var ws = pck.Workbook.Worksheets.Add("Manual Receipts"); | |
| ws.Cells["A1"].Value = " SpaceNeedle Manual Receipt Form"; | |
| using (ExcelRange r = ws.Cells["A1:F1"]) | |
| { | |
| r.Merge = true; | |
| r.Style.Font.SetFromFont(new Font("Arial", 18, FontStyle.Italic)); | |
| r.Style.Font.Color.SetColor(Color.DarkRed); | |
| r.Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.CenterContinuous; | |
| //r.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; | |
| //r.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(23, 55, 93)); | |
| } | |
| // ws.Column(1).BestFit = true; | |
| ws.Column(1).Width = 17; | |
| ws.Column(5).Width = 20; | |
| ws.Cells["A2"].Value = "Date Produced"; | |
| ws.Cells["A2"].Style.Font.Bold = true; | |
| ws.Cells["B2"].Value = DateTime.Now.ToShortDateString(); | |
| ws.Cells["D2"].Value = "Quantity"; | |
| ws.Cells["D2"].Style.Font.Bold = true; | |
| ws.Cells["E2"].Value = "txt"; | |
| ws.Cells["C4"].Value = "Receipt Number"; | |
| ws.Cells["C4"].Style.WrapText = true; | |
| ws.Cells["C4"].Style.Font.Bold = true; | |
| int rowNbr = 5; | |
| for (int entryNbr = 1; entryNbr <= 1; entryNbr += 1) | |
| { | |
| ws.Cells["B" + rowNbr].Value = entryNbr; | |
| ws.Cells["C" + rowNbr].Value = 1 + entryNbr - 1; | |
| rowNbr += 1; | |
| } | |
| pck.SaveAs(new FileInfo(".\\test.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void OpenXlsm() | |
| { | |
| ExcelPackage p = new ExcelPackage(new FileInfo("c:\\temp\\cs1.xlsx")); | |
| int c = p.Workbook.Worksheets.Count; | |
| p.Save(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Mergebug() | |
| { | |
| var xlPackage = new ExcelPackage(); | |
| var xlWorkSheet = xlPackage.Workbook.Worksheets.Add("Test Sheet"); | |
| var Cells = xlWorkSheet.Cells; | |
| var TitleCell = Cells[1, 1, 1, 3]; | |
| TitleCell.Merge = true; | |
| TitleCell.Value = "Test Spreadsheet"; | |
| Cells[2, 1].Value = "Test Sub Heading\r\ntest" + (char)22; | |
| for (int i = 0; i < 256; i++) | |
| { | |
| Cells[3, i + 1].Value = (char)i; | |
| } | |
| Cells[2, 1].Style.WrapText = true; | |
| xlWorkSheet.Row(1).Height = 50; | |
| xlPackage.SaveAs(new FileInfo("c:\\temp\\Mergebug.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void OpenProblem() | |
| { | |
| var xlPackage = new ExcelPackage(); | |
| var ws = xlPackage.Workbook.Worksheets.Add("W1"); | |
| xlPackage.Workbook.Worksheets.Add("W2"); | |
| ws.Cells["A1:A10"].Formula = "W2!A1+C1"; | |
| ws.Cells["B1:B10"].FormulaR1C1 = "W2!R1C1+C1"; | |
| xlPackage.SaveAs(new FileInfo("c:\\temp\\Mergebug.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void ProtectionProblem() | |
| { | |
| var xlPackage = new ExcelPackage(new FileInfo("c:\\temp\\CovenantsCheckReportTemplate.xlsx")); | |
| var ws = xlPackage.Workbook.Worksheets.First(); | |
| ws.Protection.SetPassword("Test"); | |
| xlPackage.SaveAs(new FileInfo("c:\\temp\\Mergebug.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Nametest() | |
| { | |
| var pck = new ExcelPackage(new FileInfo("c:\\temp\\names.xlsx")); | |
| var ws = pck.Workbook.Worksheets.First(); | |
| ws.Cells["H37"].Formula = "\"Test\""; | |
| pck.SaveAs(new FileInfo(@"c:\\temp\\nametest_new.xlsx")); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void CreatePivotTable() | |
| { | |
| var wsPivot1 = _pck.Workbook.Worksheets.Add("Rows-Data on columns"); | |
| var wsPivot2 = _pck.Workbook.Worksheets.Add("Rows-Data on rows"); | |
| var wsPivot3 = _pck.Workbook.Worksheets.Add("Columns-Data on columns"); | |
| var wsPivot4 = _pck.Workbook.Worksheets.Add("Columns-Data on rows"); | |
| var wsPivot5 = _pck.Workbook.Worksheets.Add("Columns/Rows-Data on columns"); | |
| var wsPivot6 = _pck.Workbook.Worksheets.Add("Columns/Rows-Data on rows"); | |
| var wsPivot7 = _pck.Workbook.Worksheets.Add("Rows/Page-Data on Columns"); | |
| var wsPivot8 = _pck.Workbook.Worksheets.Add("Pivot-Group Date"); | |
| var wsPivot9 = _pck.Workbook.Worksheets.Add("Pivot-Group Number"); | |
| var ws = _pck.Workbook.Worksheets.Add("Data"); | |
| ws.Cells["K1"].Value = "Item"; | |
| ws.Cells["L1"].Value = "Category"; | |
| ws.Cells["M1"].Value = "Stock"; | |
| ws.Cells["N1"].Value = "Price"; | |
| ws.Cells["O1"].Value = "Date for grouping"; | |
| ws.Cells["K2"].Value = "Crowbar"; | |
| ws.Cells["L2"].Value = "Hardware"; | |
| ws.Cells["M2"].Value = 12; | |
| ws.Cells["N2"].Value = 85.2; | |
| ws.Cells["O2"].Value = new DateTime(2010, 1, 31); | |
| ws.Cells["K3"].Value = "Crowbar"; | |
| ws.Cells["L3"].Value = "Hardware"; | |
| ws.Cells["M3"].Value = 15; | |
| ws.Cells["N3"].Value = 12.2; | |
| ws.Cells["O3"].Value = new DateTime(2010, 2, 28); | |
| ws.Cells["K4"].Value = "Hammer"; | |
| ws.Cells["L4"].Value = "Hardware"; | |
| ws.Cells["M4"].Value = 550; | |
| ws.Cells["N4"].Value = 72.7; | |
| ws.Cells["O4"].Value = new DateTime(2010, 3, 31); | |
| ws.Cells["K5"].Value = "Hammer"; | |
| ws.Cells["L5"].Value = "Hardware"; | |
| ws.Cells["M5"].Value = 120; | |
| ws.Cells["N5"].Value = 11.3; | |
| ws.Cells["O5"].Value = new DateTime(2010, 4, 30); | |
| ws.Cells["K6"].Value = "Crowbar"; | |
| ws.Cells["L6"].Value = "Hardware"; | |
| ws.Cells["M6"].Value = 120; | |
| ws.Cells["N6"].Value = 173.2; | |
| ws.Cells["O6"].Value = new DateTime(2010, 5, 31); | |
| ws.Cells["K7"].Value = "Hammer"; | |
| ws.Cells["L7"].Value = "Hardware"; | |
| ws.Cells["M7"].Value = 1; | |
| ws.Cells["N7"].Value = 4.2; | |
| ws.Cells["O7"].Value = new DateTime(2010, 6, 30); | |
| ws.Cells["K8"].Value = "Saw"; | |
| ws.Cells["L8"].Value = "Hardware"; | |
| ws.Cells["M8"].Value = 4; | |
| ws.Cells["N8"].Value = 33.12; | |
| ws.Cells["O8"].Value = new DateTime(2010, 6, 28); | |
| ws.Cells["K9"].Value = "Screwdriver"; | |
| ws.Cells["L9"].Value = "Hardware"; | |
| ws.Cells["M9"].Value = 1200; | |
| ws.Cells["N9"].Value = 45.2; | |
| ws.Cells["O9"].Value = new DateTime(2010, 8, 31); | |
| ws.Cells["K10"].Value = "Apple"; | |
| ws.Cells["L10"].Value = "Groceries"; | |
| ws.Cells["M10"].Value = 807; | |
| ws.Cells["N10"].Value = 1.2; | |
| ws.Cells["O10"].Value = new DateTime(2010, 9, 30); | |
| ws.Cells["K11"].Value = "Butter"; | |
| ws.Cells["L11"].Value = "Groceries"; | |
| ws.Cells["M11"].Value = 52; | |
| ws.Cells["N11"].Value = 7.2; | |
| ws.Cells["O11"].Value = new DateTime(2010, 10, 31); | |
| ws.Cells["O2:O11"].Style.Numberformat.Format = "yyyy-MM-dd"; | |
| var pt = wsPivot1.PivotTables.Add(wsPivot1.Cells["A1"], ws.Cells["K1:N11"], "Pivottable1"); | |
| pt.GrandTotalCaption = "Total amount"; | |
| pt.RowFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataFields[0].Function = DataFieldFunctions.Product; | |
| pt.DataOnRows = false; | |
| pt = wsPivot2.PivotTables.Add(wsPivot2.Cells["A1"], ws.Cells["K1:N11"], "Pivottable2"); | |
| pt.RowFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataFields[0].Function = DataFieldFunctions.Average; | |
| pt.DataOnRows = true; | |
| pt = wsPivot3.PivotTables.Add(wsPivot3.Cells["A1"], ws.Cells["K1:N11"], "Pivottable3"); | |
| pt.ColumnFields.Add(pt.Fields[1]); | |
| pt.ColumnFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = false; | |
| pt = wsPivot4.PivotTables.Add(wsPivot4.Cells["A1"], ws.Cells["K1:N11"], "Pivottable4"); | |
| pt.ColumnFields.Add(pt.Fields[1]); | |
| pt.ColumnFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = true; | |
| pt = wsPivot5.PivotTables.Add(wsPivot5.Cells["A1"], ws.Cells["K1:N11"], "Pivottable5"); | |
| pt.ColumnFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = false; | |
| pt = wsPivot6.PivotTables.Add(wsPivot6.Cells["A1"], ws.Cells["K1:N11"], "Pivottable6"); | |
| pt.ColumnFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = true; | |
| wsPivot6.Drawings.AddChart("Pivotchart6", OfficeOpenXml.Drawing.Chart.eChartType.BarStacked3D, pt); | |
| pt = wsPivot7.PivotTables.Add(wsPivot7.Cells["A3"], ws.Cells["K1:N11"], "Pivottable7"); | |
| pt.PageFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[0]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = false; | |
| pt.Fields[0].SubTotalFunctions = eSubTotalFunctions.Sum | eSubTotalFunctions.Max; | |
| Assert.AreEqual(pt.Fields[0].SubTotalFunctions, eSubTotalFunctions.Sum | eSubTotalFunctions.Max); | |
| pt.Fields[0].SubTotalFunctions = eSubTotalFunctions.Sum | eSubTotalFunctions.Product | eSubTotalFunctions.StdDevP; | |
| Assert.AreEqual(pt.Fields[0].SubTotalFunctions, eSubTotalFunctions.Sum | eSubTotalFunctions.Product | eSubTotalFunctions.StdDevP); | |
| pt.Fields[0].SubTotalFunctions = eSubTotalFunctions.None; | |
| Assert.AreEqual(pt.Fields[0].SubTotalFunctions, eSubTotalFunctions.None); | |
| pt.Fields[0].SubTotalFunctions = eSubTotalFunctions.Default; | |
| Assert.AreEqual(pt.Fields[0].SubTotalFunctions, eSubTotalFunctions.Default); | |
| pt.Fields[0].Sort = eSortType.Descending; | |
| pt.TableStyle = OfficeOpenXml.Table.TableStyles.Medium14; | |
| pt = wsPivot8.PivotTables.Add(wsPivot8.Cells["A3"], ws.Cells["K1:O11"], "Pivottable8"); | |
| pt.RowFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[4]); | |
| pt.Fields[4].AddDateGrouping(eDateGroupBy.Years | eDateGroupBy.Months | eDateGroupBy.Days | eDateGroupBy.Quarters, new DateTime(2010, 01, 31), new DateTime(2010, 11, 30)); | |
| pt.RowHeaderCaption = "År"; | |
| pt.Fields[4].Name = "Dag"; | |
| pt.Fields[5].Name = "Månad"; | |
| pt.Fields[6].Name = "Kvartal"; | |
| pt.GrandTotalCaption = "Totalt"; | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = true; | |
| pt = wsPivot9.PivotTables.Add(wsPivot9.Cells["A3"], ws.Cells["K1:N11"], "Pivottable9"); | |
| pt.PageFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[3]); | |
| pt.RowFields[0].AddNumericGrouping(-3.3, 5.5, 4.0); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = false; | |
| pt.TableStyle = OfficeOpenXml.Table.TableStyles.Medium14; | |
| pt = wsPivot8.PivotTables.Add(wsPivot8.Cells["H3"], ws.Cells["K1:O11"], "Pivottable10"); | |
| pt.RowFields.Add(pt.Fields[1]); | |
| pt.RowFields.Add(pt.Fields[4]); | |
| pt.Fields[4].AddDateGrouping(7, new DateTime(2010, 01, 31), new DateTime(2010, 11, 30)); | |
| pt.RowHeaderCaption = "Veckor"; | |
| pt.GrandTotalCaption = "Totalt"; | |
| pt = wsPivot8.PivotTables.Add(wsPivot8.Cells["A60"], ws.Cells["K1:O11"], "Pivottable11"); | |
| pt.RowFields.Add(pt.Fields["Category"]); | |
| pt.RowFields.Add(pt.Fields["Item"]); | |
| pt.RowFields.Add(pt.Fields["Date for grouping"]); | |
| pt.DataFields.Add(pt.Fields[3]); | |
| pt.DataFields.Add(pt.Fields[2]); | |
| pt.DataOnRows = true; | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void ReadPivotTable() | |
| { | |
| ExcelPackage pck = new ExcelPackage(new FileInfo(@"c:\temp\pivot\pivotforread.xlsx")); | |
| var pivot1 = pck.Workbook.Worksheets[2].PivotTables[0]; | |
| Assert.AreEqual(pivot1.Fields.Count, 24); | |
| Assert.AreEqual(pivot1.RowFields.Count, 3); | |
| Assert.AreEqual(pivot1.DataFields.Count, 7); | |
| Assert.AreEqual(pivot1.ColumnFields.Count, 0); | |
| Assert.AreEqual(pivot1.DataFields[1].Name, "Sum of n3"); | |
| Assert.AreEqual(pivot1.Fields[2].Sort, eSortType.Ascending); | |
| Assert.AreEqual(pivot1.DataOnRows, false); | |
| var pivot2 = pck.Workbook.Worksheets[2].PivotTables[0]; | |
| var pivot3 = pck.Workbook.Worksheets[3].PivotTables[0]; | |
| var pivot4 = pck.Workbook.Worksheets[4].PivotTables[0]; | |
| var pivot5 = pck.Workbook.Worksheets[5].PivotTables[0]; | |
| pivot5.CacheDefinition.SourceRange = pck.Workbook.Worksheets[1].Cells["Q1:X300"]; | |
| var pivot6 = pck.Workbook.Worksheets[6].PivotTables[0]; | |
| pck.Workbook.Worksheets[6].Drawings.AddChart("chart1", OfficeOpenXml.Drawing.Chart.eChartType.ColumnStacked3D, pivot6); | |
| pck.SaveAs(new FileInfo(@"c:\temp\pivot\pivotforread_new.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void CreatePivotMultData() | |
| { | |
| FileInfo fi = new FileInfo(@"c:\temp\test.xlsx"); | |
| ExcelPackage pck = new ExcelPackage(fi); | |
| var ws = pck.Workbook.Worksheets.Add("Data"); | |
| var pv = pck.Workbook.Worksheets.Add("Pivot"); | |
| ws.Cells["A1"].Value = "Data1"; | |
| ws.Cells["B1"].Value = "Data2"; | |
| ws.Cells["A2"].Value = "1"; | |
| ws.Cells["B2"].Value = "2"; | |
| ws.Cells["A3"].Value = "3"; | |
| ws.Cells["B3"].Value = "4"; | |
| ws.Select("A1:B3"); | |
| var pt = pv.PivotTables.Add(pv.SelectedRange, ws.SelectedRange, "Pivot"); | |
| pt.RowFields.Add(pt.Fields["Data2"]); | |
| var df = pt.DataFields.Add(pt.Fields["Data1"]); | |
| df.Function = DataFieldFunctions.Count; | |
| df = pt.DataFields.Add(pt.Fields["Data1"]); | |
| df.Function = DataFieldFunctions.Sum; | |
| df = pt.DataFields.Add(pt.Fields["Data1"]); | |
| df.Function = DataFieldFunctions.StdDev; | |
| df.Name = "DatA1_2"; | |
| pck.Save(); | |
| } | |
| //[Ignore] | |
| [TestMethod] | |
| public void SetBackground() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("backimg"); | |
| ws.BackgroundImage.Image = Properties.Resources.Test1; | |
| ws = _pck.Workbook.Worksheets.Add("backimg2"); | |
| ws.BackgroundImage.SetFromFile(new FileInfo(Path.Combine(_clipartPath,"Vector Drawing.wmf"))); | |
| } | |
| //[Ignore] | |
| [TestMethod] | |
| public void SetHeaderFooterImage() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("HeaderImage"); | |
| ws.HeaderFooter.OddHeader.CenteredText = "Before "; | |
| var img = ws.HeaderFooter.OddHeader.InsertPicture(Properties.Resources.Test1, PictureAlignment.Centered); | |
| img.Title = "Renamed Image"; | |
| img.GrayScale = true; | |
| img.BiLevel = true; | |
| img.Gain = .5; | |
| img.Gamma = .35; | |
| Assert.AreEqual(img.Width, 426); | |
| img.Width /= 4; | |
| Assert.AreEqual(img.Height, 49.5); | |
| img.Height /= 4; | |
| Assert.AreEqual(img.Left, 0); | |
| Assert.AreEqual(img.Top, 0); | |
| ws.HeaderFooter.OddHeader.CenteredText += " After"; | |
| img = ws.HeaderFooter.EvenFooter.InsertPicture(new FileInfo(Path.Combine(_clipartPath,"Vector Drawing.wmf")), PictureAlignment.Left); | |
| img.Title = "DiskFile"; | |
| img = ws.HeaderFooter.FirstHeader.InsertPicture(new FileInfo(Path.Combine(_clipartPath, "Vector Drawing2.WMF")), PictureAlignment.Right); | |
| img.Title = "DiskFile2"; | |
| ws.Cells["A1:A400"].Value = 1; | |
| _pck.Workbook.Worksheets.Copy(ws.Name, "Copied HeaderImage"); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void NamedStyles() | |
| { | |
| var wsSheet = _pck.Workbook.Worksheets.Add("NamedStyles"); | |
| var firstNamedStyle = | |
| _pck.Workbook.Styles.CreateNamedStyle("templateFirst"); | |
| var s = firstNamedStyle.Style; | |
| s.Fill.PatternType = ExcelFillStyle.Solid; | |
| s.Fill.BackgroundColor.SetColor(Color.LightGreen); | |
| s.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous; | |
| s.VerticalAlignment = ExcelVerticalAlignment.Center; | |
| var secondNamedStyle = _pck.Workbook.Styles.CreateNamedStyle("first", firstNamedStyle.Style).Style; | |
| secondNamedStyle.Font.Bold = true; | |
| secondNamedStyle.Font.SetFromFont(new Font("Arial Black", 8)); | |
| secondNamedStyle.Border.Bottom.Style = ExcelBorderStyle.Medium; | |
| secondNamedStyle.Border.Left.Style = ExcelBorderStyle.Medium; | |
| wsSheet.Cells["B2"].Value = "Text Center"; | |
| wsSheet.Cells["B2"].StyleName = "first"; | |
| _pck.Workbook.Styles.NamedStyles[0].Style.Font.Name = "Arial"; | |
| var rowStyle = _pck.Workbook.Styles.CreateNamedStyle("RowStyle", firstNamedStyle.Style).Style; | |
| rowStyle.Fill.BackgroundColor.SetColor(Color.Pink); | |
| wsSheet.Cells.StyleName = "templateFirst"; | |
| wsSheet.Cells["C5:H15"].Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| wsSheet.Cells["C5:H15"].Style.Fill.BackgroundColor.SetColor(Color.OrangeRed); | |
| wsSheet.Cells["30:35"].StyleName = "RowStyle"; | |
| var colStyle = _pck.Workbook.Styles.CreateNamedStyle("columnStyle", firstNamedStyle.Style).Style; | |
| colStyle.Fill.BackgroundColor.SetColor(Color.CadetBlue); | |
| wsSheet.Cells["D:E"].StyleName = "ColumnStyle"; | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void StyleFill() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Fills"); | |
| ws.Cells["A1:C3"].Style.Fill.Gradient.Type = ExcelFillGradientType.Linear; | |
| ws.Cells["A1:C3"].Style.Fill.Gradient.Color1.SetColor(Color.Red); | |
| ws.Cells["A1:C3"].Style.Fill.Gradient.Color2.SetColor(Color.Blue); | |
| ws.Cells["A1"].Style.Fill.PatternType = ExcelFillStyle.MediumGray; | |
| ws.Cells["A1"].Style.Fill.BackgroundColor.SetColor(Color.ForestGreen); | |
| var r = ws.Cells["A2:A3"]; | |
| r.Style.Fill.Gradient.Type = ExcelFillGradientType.Path; | |
| r.Style.Fill.Gradient.Left = 0.7; | |
| r.Style.Fill.Gradient.Right = 0.7; | |
| r.Style.Fill.Gradient.Top = 0.7; | |
| r.Style.Fill.Gradient.Bottom = 0.7; | |
| ws.Cells[4, 1, 4, 360].Style.Fill.Gradient.Type = ExcelFillGradientType.Path; | |
| for (double col = 1; col < 360; col++) | |
| { | |
| r = ws.Cells[4, Convert.ToInt32(col)]; | |
| r.Style.Fill.Gradient.Degree = col; | |
| r.Style.Fill.Gradient.Left = col / 360; | |
| r.Style.Fill.Gradient.Right = col / 360; | |
| r.Style.Fill.Gradient.Top = col / 360; | |
| r.Style.Fill.Gradient.Bottom = col / 360; | |
| } | |
| r = ws.Cells["A5"]; | |
| r.Style.Fill.Gradient.Left = .50; | |
| ws = _pck.Workbook.Worksheets.Add("FullFills"); | |
| ws.Cells.Style.Fill.Gradient.Left = 0.25; | |
| ws.Cells["A1"].Value = "test"; | |
| ws.Cells["A1"].RichText.Add("Test rt"); | |
| ws.Cells.AutoFilter = true; | |
| Assert.AreNotEqual(ws.Cells["A1:D5"].Value, null); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void BuildInStyles() | |
| { | |
| var pck = new ExcelPackage(); | |
| var ws = pck.Workbook.Worksheets.Add("Default"); | |
| ws.Cells.Style.Font.Name = "Arial"; | |
| ws.Cells.Style.Font.Size = 15; | |
| ws.Cells.Style.Border.Bottom.Style = ExcelBorderStyle.MediumDashed; | |
| var n = pck.Workbook.Styles.NamedStyles[0]; | |
| n.Style.Numberformat.Format = "yyyy"; | |
| n.Style.Font.Name = "Arial"; | |
| n.Style.Font.Size = 15; | |
| n.Style.Border.Bottom.Style = ExcelBorderStyle.Dotted; | |
| n.Style.Border.Bottom.Color.SetColor(Color.Red); | |
| n.Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| n.Style.Fill.BackgroundColor.SetColor(Color.Blue); | |
| n.Style.Border.Bottom.Color.SetColor(Color.Red); | |
| n.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; | |
| n.Style.VerticalAlignment = ExcelVerticalAlignment.Center; | |
| n.Style.TextRotation = 90; | |
| ws.Cells["a1:c3"].StyleName = "Normal"; | |
| // n.CustomBuildin = true; | |
| pck.SaveAs(new FileInfo(@"c:\temp\style.xlsx")); | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void AutoFitColumns() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("Autofit"); | |
| ws.Cells["A1:H1"].Value = "Auto fit column that is veeery long..."; | |
| ws.Cells["B1"].Style.TextRotation = 30; | |
| ws.Cells["C1"].Style.TextRotation = 45; | |
| ws.Cells["D1"].Style.TextRotation = 75; | |
| ws.Cells["E1"].Style.TextRotation = 90; | |
| ws.Cells["F1"].Style.TextRotation = 120; | |
| ws.Cells["G1"].Style.TextRotation = 135; | |
| ws.Cells["H1"].Style.TextRotation = 180; | |
| ws.Cells["A1:H1"].AutoFitColumns(0); | |
| } | |
| [TestMethod, Ignore] | |
| public void Moveissue() | |
| { | |
| _pck = new ExcelPackage(new FileInfo(@"C:\temp\bug\FormulaIssue\PreDelete.xlsx")); | |
| _pck.Workbook.Worksheets[1].DeleteRow(2, 4); | |
| _pck.SaveAs(new FileInfo(@"c:\temp\move.xlsx")); | |
| } | |
| [TestMethod, Ignore] | |
| public void DelCol() | |
| { | |
| _pck = new ExcelPackage(new FileInfo(@"C:\temp\bug\FormulaIssue\PreDeleteCol.xlsx")); | |
| _pck.Workbook.Worksheets[1].DeleteColumn(5, 1); | |
| _pck.SaveAs(new FileInfo(@"c:\temp\move.xlsx")); | |
| } | |
| [TestMethod, Ignore] | |
| public void InsCol() | |
| { | |
| _pck = new ExcelPackage(new FileInfo(@"C:\temp\bug\FormulaIssue\PreDeleteCol.xlsx")); | |
| _pck.Workbook.Worksheets[1].InsertColumn(4, 5); | |
| _pck.SaveAs(new FileInfo(@"c:\temp\move.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void FileLockedProblem() | |
| { | |
| using (ExcelPackage pck = new ExcelPackage(new FileInfo(@"c:\temp\url.xlsx"))) | |
| { | |
| pck.Workbook.Worksheets[1].DeleteRow(1, 1); | |
| pck.Save(); | |
| pck.Dispose(); | |
| } | |
| } | |
| //[Ignore] | |
| //[TestMethod] | |
| public void CopyOverwrite() | |
| { | |
| var ws = _pck.Workbook.Worksheets.Add("CopyOverwrite"); | |
| for (int col = 1; col < 15; col++) | |
| { | |
| for (int row = 1; row < 30; row++) | |
| { | |
| ws.SetValue(row, col, "cell " + ExcelAddressBase.GetAddress(row, col)); | |
| } | |
| } | |
| ws.Cells["A1:P30"].Copy(ws.Cells["B1"]); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void RunSample0() | |
| { | |
| FileInfo newFile = new FileInfo(@"c:\temp\bug\sample0.xlsx"); | |
| using (ExcelPackage package = new ExcelPackage(newFile)) | |
| { | |
| ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; | |
| worksheet.InsertColumn(1, 1); | |
| ExcelColumn entireColumn = worksheet.Column(1); | |
| var last = worksheet.Column(6); | |
| last.Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| last.Style.Fill.BackgroundColor.SetColor(Color.Blue); | |
| last.ColumnMax = 7; | |
| worksheet.InsertColumn(7, 1); | |
| //save our new workbook and we are done! | |
| package.Save(); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Deletews() | |
| { | |
| FileInfo newFile = new FileInfo(@"c:\temp\bug\worksheet error.xlsx"); | |
| using (ExcelPackage package = new ExcelPackage(newFile)) | |
| { | |
| var ws1 = package.Workbook.Worksheets.Add("sheet1"); | |
| var ws2 = package.Workbook.Worksheets.Add("sheet2"); | |
| var ws3 = package.Workbook.Worksheets.Add("sheet3"); | |
| package.Workbook.Worksheets.MoveToStart(ws3.Name); | |
| //save our new workbook and we are done! | |
| package.Save(); | |
| } | |
| using (ExcelPackage package = new ExcelPackage(newFile)) | |
| { | |
| package.Workbook.Worksheets.Delete(1); | |
| var ws3 = package.Workbook.Worksheets.Add("sheet3"); | |
| package.SaveAs(new FileInfo(@"c:\temp\bug\worksheet error_save.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15207() | |
| { | |
| using (ExcelPackage ep = new ExcelPackage(new FileInfo(@"c:\temp\bug\worksheet error.xlsx"))) | |
| { | |
| ExcelWorkbook wb = ep.Workbook; | |
| if (wb != null) | |
| { | |
| ExcelWorksheet ws = null; | |
| ws = wb.Worksheets[1]; | |
| if (ws != null) | |
| { | |
| //do something with the worksheet | |
| ws.Dispose(); | |
| } | |
| wb.Dispose(); | |
| } //if wb != null | |
| wb = null; | |
| //do some other things | |
| //running through this next line now throws the null reference exception | |
| //so the inbuilt dispose method doesn't work properly. | |
| } //using (ExcelPackage ep = new ExcelPackage(new FileInfo(some_file)) | |
| } | |
| #region Date1904 Test Cases | |
| [TestMethod] | |
| public void TestDate1904WithoutSetting() | |
| { | |
| string file = "test1904.xlsx"; | |
| DateTime dateTest1 = new DateTime(2008, 2, 29); | |
| DateTime dateTest2 = new DateTime(1950, 11, 30); | |
| if (File.Exists(file)) | |
| File.Delete(file); | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w = pack.Workbook.Worksheets.Add("test"); | |
| w.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14); | |
| w.Cells[1, 1].Value = dateTest1; | |
| w.Cells[2, 1].Value = dateTest2; | |
| pack.Save(); | |
| ExcelPackage pack2 = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w2 = pack2.Workbook.Worksheets["test"]; | |
| Assert.AreEqual(dateTest1, w2.Cells[1, 1].Value); | |
| Assert.AreEqual(dateTest2, w2.Cells[2, 1].Value); | |
| } | |
| [TestMethod] | |
| public void TestDate1904WithSetting() | |
| { | |
| string file = "test1904.xlsx"; | |
| DateTime dateTest1 = new DateTime(2008, 2, 29); | |
| DateTime dateTest2 = new DateTime(1950, 11, 30); | |
| if (File.Exists(file)) | |
| File.Delete(file); | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| pack.Workbook.Date1904 = true; | |
| ExcelWorksheet w = pack.Workbook.Worksheets.Add("test"); | |
| w.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14); | |
| w.Cells[1, 1].Value = dateTest1; | |
| w.Cells[2, 1].Value = dateTest2; | |
| pack.Save(); | |
| ExcelPackage pack2 = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w2 = pack2.Workbook.Worksheets["test"]; | |
| Assert.AreEqual(dateTest1, w2.Cells[1, 1].Value); | |
| Assert.AreEqual(dateTest2, w2.Cells[2, 1].Value); | |
| } | |
| [TestMethod] | |
| public void TestDate1904SetAndRemoveSetting() | |
| { | |
| string file = "test1904.xlsx"; | |
| DateTime dateTest1 = new DateTime(2008, 2, 29); | |
| DateTime dateTest2 = new DateTime(1950, 11, 30); | |
| if (File.Exists(file)) | |
| File.Delete(file); | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| pack.Workbook.Date1904 = true; | |
| ExcelWorksheet w = pack.Workbook.Worksheets.Add("test"); | |
| w.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14); | |
| w.Cells[1, 1].Value = dateTest1; | |
| w.Cells[2, 1].Value = dateTest2; | |
| pack.Save(); | |
| ExcelPackage pack2 = new ExcelPackage(new FileInfo(file)); | |
| pack2.Workbook.Date1904 = false; | |
| pack2.Save(); | |
| ExcelPackage pack3 = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w3 = pack3.Workbook.Worksheets["test"]; | |
| Assert.AreEqual(dateTest1.AddDays(365.5 * -4), w3.Cells[1, 1].Value); | |
| Assert.AreEqual(dateTest2.AddDays(365.5 * -4), w3.Cells[2, 1].Value); | |
| } | |
| [TestMethod] | |
| public void TestDate1904SetAndSetSetting() | |
| { | |
| string file = "test1904.xlsx"; | |
| DateTime dateTest1 = new DateTime(2008, 2, 29); | |
| DateTime dateTest2 = new DateTime(1950, 11, 30); | |
| if (File.Exists(file)) | |
| File.Delete(file); | |
| ExcelPackage pack = new ExcelPackage(new FileInfo(file)); | |
| pack.Workbook.Date1904 = true; | |
| ExcelWorksheet w = pack.Workbook.Worksheets.Add("test"); | |
| w.Cells[1, 1, 2, 1].Style.Numberformat.Format = ExcelNumberFormat.GetFromBuildInFromID(14); | |
| w.Cells[1, 1].Value = dateTest1; | |
| w.Cells[2, 1].Value = dateTest2; | |
| pack.Save(); | |
| ExcelPackage pack2 = new ExcelPackage(new FileInfo(file)); | |
| pack2.Workbook.Date1904 = true; // Only the cells must be updated when this change, if set the same nothing must change | |
| pack2.Save(); | |
| ExcelPackage pack3 = new ExcelPackage(new FileInfo(file)); | |
| ExcelWorksheet w3 = pack3.Workbook.Worksheets["test"]; | |
| Assert.AreEqual(dateTest1, w3.Cells[1, 1].Value); | |
| Assert.AreEqual(dateTest2, w3.Cells[2, 1].Value); | |
| } | |
| [TestMethod, Ignore] | |
| public void SaveToStream() | |
| { | |
| var stream = new MemoryStream(File.ReadAllBytes(@"c:\temp\book1.xlsx")); | |
| var excelPackage = new ExcelPackage(stream); | |
| excelPackage.Workbook.Worksheets.Add("test"); | |
| excelPackage.Save(); | |
| var s = stream.ToArray(); | |
| } | |
| [TestMethod, Ignore] | |
| public void ColumnsTest() | |
| { | |
| var excelPackage = new ExcelPackage(); | |
| var ws = excelPackage.Workbook.Worksheets.Add("ColumnTest"); | |
| for (var c = 4; c <= 20; c += 4) | |
| { | |
| var col = ws.Column(c); | |
| col.ColumnMax = c + 3; | |
| } | |
| ws.Column(3).Hidden = true; | |
| ws.Column(6).Hidden = true; | |
| ws.Column(9).Hidden = true; | |
| ws.Column(15).Hidden = true; | |
| ws.Cells["a1:Z1"].Value = "Test"; | |
| ws.Cells["a1:FF33"].AutoFitColumns(0); | |
| ws.Column(26).ColumnMax = ExcelPackage.MaxColumns; | |
| excelPackage.SaveAs(new FileInfo(@"c:\temp\autofit.xlsx")); | |
| } | |
| [TestMethod] | |
| public void Comment() | |
| { | |
| InitBase(); | |
| var pck = new ExcelPackage(); | |
| var ws1 = pck.Workbook.Worksheets.Add("Comment1"); | |
| ws1.Cells[1, 1].AddComment("Testing", "test1"); | |
| pck.SaveAs(new FileInfo(_worksheetPath + "comment.xlsx")); | |
| pck = new ExcelPackage(new FileInfo(_worksheetPath + "comment.xlsx")); | |
| var ws2 = pck.Workbook.Worksheets[1]; | |
| ws2.Cells[1, 2].AddComment("Testing", "test1"); | |
| pck.Save(); | |
| } | |
| #endregion | |
| } | |
| } |