| using System; | |
| using System.Diagnostics; | |
| using System.Drawing; | |
| using System.Linq; | |
| using System.Linq; | |
| using System.Reflection; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using System.IO; | |
| using OfficeOpenXml; | |
| using OfficeOpenXml.FormulaParsing.Logging; | |
| using OfficeOpenXml.Style; | |
| using System.Data; | |
| using OfficeOpenXml.Table; | |
| using Rhino.Mocks.Constraints; | |
| using System.Collections.Generic; | |
| using OfficeOpenXml.Table.PivotTable; | |
| namespace EPPlusTest | |
| { | |
| [TestClass] | |
| public class Issues | |
| { | |
| [TestInitialize] | |
| public void Initialize() | |
| { | |
| if (!Directory.Exists(@"c:\Temp")) | |
| { | |
| Directory.CreateDirectory(@"c:\Temp"); | |
| } | |
| if (!Directory.Exists(@"c:\Temp\bug")) | |
| { | |
| Directory.CreateDirectory(@"c:\Temp\bug"); | |
| } | |
| } | |
| [TestMethod,Ignore] | |
| public void Issue15052() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("test"); | |
| ws.Cells["A1:A4"].Value = 1; | |
| ws.Cells["B1:B4"].Value = 2; | |
| ws.Cells[1, 1, 4, 1] | |
| .Style.Numberformat.Format = "#,##0.00;[Red]-#,##0.00"; | |
| ws.Cells[1, 2, 5, 2] | |
| .Style.Numberformat.Format = "#,##0;[Red]-#,##0"; | |
| p.SaveAs(new FileInfo(@"c:\temp\style.xlsx")); | |
| } | |
| [TestMethod] | |
| public void Issue15041() | |
| { | |
| using (var package = new ExcelPackage()) | |
| { | |
| var ws = package.Workbook.Worksheets.Add("Test"); | |
| ws.Cells["A1"].Value = 202100083; | |
| ws.Cells["A1"].Style.Numberformat.Format = "00\\.00\\.00\\.000\\.0"; | |
| Assert.AreEqual("02.02.10.008.3", ws.Cells["A1"].Text); | |
| ws.Dispose(); | |
| } | |
| } | |
| [TestMethod] | |
| public void Issue15031() | |
| { | |
| var d = OfficeOpenXml.Utils.ConvertUtil.GetValueDouble(new TimeSpan(35, 59, 1)); | |
| using (var package = new ExcelPackage()) | |
| { | |
| var ws = package.Workbook.Worksheets.Add("Test"); | |
| ws.Cells["A1"].Value = d; | |
| ws.Cells["A1"].Style.Numberformat.Format = "[t]:mm:ss"; | |
| ws.Dispose(); | |
| } | |
| } | |
| [TestMethod] | |
| public void Issue15022() | |
| { | |
| using (var package = new ExcelPackage()) | |
| { | |
| var ws = package.Workbook.Worksheets.Add("Test"); | |
| ws.Cells.AutoFitColumns(); | |
| ws.Cells["A1"].Style.Numberformat.Format = "0"; | |
| ws.Cells.AutoFitColumns(); | |
| } | |
| } | |
| [TestMethod] | |
| public void Issue15056() | |
| { | |
| var path = @"C:\temp\output.xlsx"; | |
| var file = new FileInfo(path); | |
| file.Delete(); | |
| using (var ep = new ExcelPackage(file)) | |
| { | |
| var s = ep.Workbook.Worksheets.Add("test"); | |
| s.Cells["A1:A2"].Formula = ""; // or null, or non-empty whitespace, with same result | |
| ep.Save(); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15058() | |
| { | |
| System.IO.FileInfo newFile = new System.IO.FileInfo(@"C:\Temp\output.xlsx"); | |
| ExcelPackage excelP = new ExcelPackage(newFile); | |
| ExcelWorksheet ws = excelP.Workbook.Worksheets[1]; | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15063() | |
| { | |
| System.IO.FileInfo newFile = new System.IO.FileInfo(@"C:\Temp\bug\TableFormula.xlsx"); | |
| ExcelPackage excelP = new ExcelPackage(newFile); | |
| ExcelWorksheet ws = excelP.Workbook.Worksheets[1]; | |
| ws.Calculate(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15112() | |
| { | |
| System.IO.FileInfo case1 = new System.IO.FileInfo(@"c:\temp\bug\src\src\DeleteRowIssue\Template.xlsx"); | |
| var p = new ExcelPackage(case1); | |
| var first = p.Workbook.Worksheets[1]; | |
| first.DeleteRow(5); | |
| p.SaveAs(new System.IO.FileInfo(@"c:\temp\bug\DeleteCol_case1.xlsx")); | |
| var case2 = new System.IO.FileInfo(@"c:\temp\bug\src2\DeleteRowIssue\Template.xlsx"); | |
| p = new ExcelPackage(case2); | |
| first = p.Workbook.Worksheets[1]; | |
| first.DeleteRow(5); | |
| p.SaveAs(new System.IO.FileInfo(@"c:\temp\bug\DeleteCol_case2.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15118() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bugOutput.xlsx"), new FileInfo(@"c:\temp\bug\DeleteRowIssue\Template.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| worksheet.Cells[9, 6, 9, 7].Merge = true; | |
| worksheet.Cells[9, 8].Merge = false; | |
| worksheet.DeleteRow(5); | |
| worksheet.DeleteColumn(5); | |
| worksheet.DeleteColumn(5); | |
| worksheet.DeleteColumn(5); | |
| worksheet.DeleteColumn(5); | |
| package.Save(); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15109() | |
| { | |
| System.IO.FileInfo newFile = new System.IO.FileInfo(@"C:\Temp\bug\test01.xlsx"); | |
| ExcelPackage excelP = new ExcelPackage(newFile); | |
| ExcelWorksheet ws = excelP.Workbook.Worksheets[1]; | |
| Assert.AreEqual("A1:Z75",ws.Dimension.Address); | |
| excelP.Dispose(); | |
| newFile = new System.IO.FileInfo(@"C:\Temp\bug\test02.xlsx"); | |
| excelP = new ExcelPackage(newFile); | |
| ws = excelP.Workbook.Worksheets[1]; | |
| Assert.AreEqual("A1:AF501", ws.Dimension.Address); | |
| excelP.Dispose(); | |
| newFile = new System.IO.FileInfo(@"C:\Temp\bug\test03.xlsx"); | |
| excelP = new ExcelPackage(newFile); | |
| ws = excelP.Workbook.Worksheets[1]; | |
| Assert.AreEqual("A1:AD406", ws.Dimension.Address); | |
| excelP.Dispose(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15120() | |
| { | |
| var p=new ExcelPackage(new System.IO.FileInfo(@"C:\Temp\bug\pp.xlsx")); | |
| ExcelWorksheet ws = p.Workbook.Worksheets["tum_liste"]; | |
| ExcelWorksheet wPvt = p.Workbook.Worksheets.Add("pvtSheet"); | |
| var pvSh = wPvt.PivotTables.Add(wPvt.Cells["B5"], ws.Cells[ws.Dimension.Address.ToString()], "pvtS"); | |
| //p.Save(); | |
| } | |
| [TestMethod] | |
| public void Issue15113() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("t"); | |
| ws.Cells["A1"].Value = " Performance Update"; | |
| ws.Cells["A1:H1"].Merge = true; | |
| ws.Cells["A1:H1"].Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous; | |
| ws.Cells["A1:H1"].Style.Font.Size = 14; | |
| ws.Cells["A1:H1"].Style.Font.Color.SetColor(Color.Red); | |
| ws.Cells["A1:H1"].Style.Font.Bold = true; | |
| p.SaveAs(new FileInfo(@"c:\temp\merge.xlsx")); | |
| } | |
| [TestMethod] | |
| public void Issue15141() | |
| { | |
| using (ExcelPackage package = new ExcelPackage()) | |
| using (ExcelWorksheet sheet = package.Workbook.Worksheets.Add("Test")) | |
| { | |
| sheet.Cells.Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| sheet.Cells.Style.Fill.BackgroundColor.SetColor(Color.White); | |
| sheet.Cells[1, 1, 1, 3].Style.Border.BorderAround(ExcelBorderStyle.Thin); | |
| sheet.Cells[1, 5, 2, 5].Style.Border.BorderAround(ExcelBorderStyle.Thin); | |
| ExcelColumn column = sheet.Column(3); // fails with exception | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15145() | |
| { | |
| using (ExcelPackage p = new ExcelPackage(new System.IO.FileInfo(@"C:\Temp\bug\ColumnInsert.xlsx"))) | |
| { | |
| ExcelWorksheet ws = p.Workbook.Worksheets[1]; | |
| ws.InsertColumn(12,3); | |
| ws.InsertRow(30,3); | |
| ws.DeleteRow(31,1); | |
| ws.DeleteColumn(7,1); | |
| p.SaveAs(new System.IO.FileInfo(@"C:\Temp\bug\InsertCopyFail.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15150() | |
| { | |
| var template = new FileInfo(@"c:\temp\bug\ClearIssue.xlsx"); | |
| const string output = @"c:\temp\bug\ClearIssueSave.xlsx"; | |
| using (var pck = new ExcelPackage(template, false)) | |
| { | |
| var ws = pck.Workbook.Worksheets[1]; | |
| ws.Cells["A2:C3"].Value = "Test"; | |
| var c = ws.Cells["B2:B3"]; | |
| c.Clear(); | |
| pck.SaveAs(new FileInfo(output)); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15146() | |
| { | |
| var template = new FileInfo(@"c:\temp\bug\CopyFail.xlsx"); | |
| const string output = @"c:\temp\bug\CopyFail-Save.xlsx"; | |
| using (var pck = new ExcelPackage(template, false)) | |
| { | |
| var ws = pck.Workbook.Worksheets[3]; | |
| //ws.InsertColumn(3, 1); | |
| CustomColumnInsert(ws, 3, 1); | |
| pck.SaveAs(new FileInfo(output)); | |
| } | |
| } | |
| private static void CustomColumnInsert(ExcelWorksheet ws, int column, int columns) | |
| { | |
| var source = ws.Cells[1, column, ws.Dimension.End.Row, ws.Dimension.End.Column]; | |
| var dest = ws.Cells[1, column + columns, ws.Dimension.End.Row, ws.Dimension.End.Column + columns]; | |
| source.Copy(dest); | |
| } | |
| [TestMethod] | |
| public void Issue15123() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("t"); | |
| 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)); | |
| dt.Columns.Add("Date", typeof(DateTime)); | |
| var dr = dt.NewRow(); | |
| dr[0] = "Row1"; | |
| dr[1] = 1; | |
| dr[2] = true; | |
| dr[3] = 1.5; | |
| dr[4] = new DateTime(2014, 12, 30); | |
| dt.Rows.Add(dr); | |
| dr = dt.NewRow(); | |
| dr[0] = "Row2"; | |
| dr[1] = 2; | |
| dr[2] = false; | |
| dr[3] = 2.25; | |
| dr[4] = new DateTime(2014, 12, 31); | |
| dt.Rows.Add(dr); | |
| ws.Cells["A1"].LoadFromDataTable(dt,true); | |
| ws.Cells["D2:D3"].Style.Numberformat.Format = "(* #,##0.00);_(* (#,##0.00);_(* \"-\"??_);(@)"; | |
| ws.Cells["E2:E3"].Style.Numberformat.Format = "mm/dd/yyyy"; | |
| ws.Cells.AutoFitColumns(); | |
| Assert.AreNotEqual(ws.Cells[2, 5].Text,""); | |
| } | |
| } | |
| [TestMethod] | |
| public void Issue15128() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("t"); | |
| ws.Cells["A1"].Value=1; | |
| ws.Cells["B1"].Value = 2; | |
| ws.Cells["B2"].Formula = "A1+$B$1"; | |
| ws.Cells["C1"].Value = "Test"; | |
| ws.Cells["A1:B2"].Copy(ws.Cells["C1"]); | |
| ws.Cells["B2"].Copy(ws.Cells["D1"]); | |
| p.SaveAs(new FileInfo(@"c:\temp\bug\copy.xlsx")); | |
| } | |
| [TestMethod] | |
| public void IssueMergedCells() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("t"); | |
| ws.Cells["A1:A5,C1:C8"].Merge = true; | |
| ws.Cells["C1:C8"].Merge = false; | |
| ws.Cells["A1:A8"].Merge = false; | |
| p.Dispose(); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15158() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\Output.xlsx"), new FileInfo(@"C:\temp\bug\DeleteColFormula\FormulasIssue\demo.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| ExcelWorksheet worksheet = workBook.Worksheets[1]; | |
| //string column = ColumnIndexToColumnLetter(28); | |
| worksheet.DeleteColumn(28); | |
| if (worksheet.Cells["AA19"].Formula != "") | |
| { | |
| throw new Exception("this cell should not have formula"); | |
| } | |
| package.Save(); | |
| } | |
| } | |
| public class cls1 | |
| { | |
| public int prop1 { get; set; } | |
| } | |
| public class cls2 : cls1 | |
| { | |
| public string prop2 { get; set; } | |
| } | |
| [TestMethod] | |
| public void LoadFromColIssue() | |
| { | |
| var l = new List<cls1>(); | |
| var c2 = new cls2() {prop1=1, prop2="test1"}; | |
| l.Add(c2); | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("Test"); | |
| ws.Cells["A1"].LoadFromCollection(l, true, TableStyles.Light16, BindingFlags.Instance | BindingFlags.Public, | |
| new MemberInfo[] {typeof(cls2).GetProperty("prop2")}); | |
| } | |
| [TestMethod] | |
| public void Issue15168() | |
| { | |
| using (var p = new ExcelPackage()) | |
| { | |
| var ws = p.Workbook.Worksheets.Add("Test"); | |
| ws.Cells[1, 1].Value = "A1"; | |
| ws.Cells[2, 1].Value = "A2"; | |
| ws.Cells[2, 1].Value = ws.Cells[1, 1].Value; | |
| Assert.AreEqual("A1", ws.Cells[1, 1].Value); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15159() | |
| { | |
| var fs = new FileStream(@"C:\temp\bug\DeleteColFormula\FormulasIssue\demo.xlsx", FileMode.OpenOrCreate); | |
| using (var package = new OfficeOpenXml.ExcelPackage(fs)) | |
| { | |
| package.Save(); | |
| } | |
| fs.Seek(0, SeekOrigin.Begin); | |
| var fs2 = fs; | |
| } | |
| [TestMethod] | |
| public void Issue15179() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage()) | |
| { | |
| var ws = package.Workbook.Worksheets.Add("MergeDeleteBug"); | |
| ws.Cells["E3:F3"].Merge = true; | |
| ws.Cells["E3:F3"].Merge = false; | |
| ws.DeleteRow(2, 6); | |
| ws.Cells["A1"].Value = 0; | |
| var s = ws.Cells["A1"].Value.ToString(); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15169() | |
| { | |
| FileInfo fileInfo = new FileInfo(@"C:\temp\bug\issue\input.xlsx"); | |
| ExcelPackage excelPackage = new ExcelPackage(fileInfo); | |
| { | |
| string sheetName = "Labour Costs"; | |
| ExcelWorksheet ws = excelPackage.Workbook.Worksheets[sheetName]; | |
| excelPackage.Workbook.Worksheets.Delete(ws); | |
| ws = excelPackage.Workbook.Worksheets.Add(sheetName); | |
| excelPackage.SaveAs(new FileInfo(@"C:\temp\bug\issue\output2.xlsx")); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15172() | |
| { | |
| FileInfo fileInfo = new FileInfo(@"C:\temp\bug\book2.xlsx"); | |
| ExcelPackage excelPackage = new ExcelPackage(fileInfo); | |
| { | |
| ExcelWorksheet ws = excelPackage.Workbook.Worksheets[1]; | |
| Assert.AreEqual("IF($R10>=X$2,1,0)", ws.Cells["X10"].Formula); | |
| ws.Calculate(); | |
| Assert.AreEqual(0D,ws.Cells["X10"].Value); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15174() | |
| { | |
| using (ExcelPackage package = new ExcelPackage(new FileInfo(@"C:\temp\bug\MyTemplate.xlsx"))) | |
| { | |
| package.Workbook.Worksheets[1].Column(2).Style.Numberformat.Format = "dd/mm/yyyy"; | |
| package.SaveAs(new FileInfo(@"C:\temp\bug\MyTemplate2.xlsx")); | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void PictureIssue() | |
| { | |
| var p = new ExcelPackage(); | |
| var ws = p.Workbook.Worksheets.Add("t"); | |
| ws.Drawings.AddPicture("Test", new FileInfo(@"c:\temp\bug\2152228.jpg")); | |
| p.SaveAs(new FileInfo(@"c:\temp\bug\pic.xlsx")); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue14988() | |
| { | |
| var guid = Guid.NewGuid().ToString("N"); | |
| using (var outputStream = new FileStream(@"C:\temp\" + guid + ".xlsx", FileMode.Create)) | |
| { | |
| using (var inputStream = new FileStream(@"C:\temp\bug2.xlsx", FileMode.Open)) | |
| { | |
| using (var package = new ExcelPackage(outputStream, inputStream, "Test")) | |
| { | |
| var ws = package.Workbook.Worksheets.Add("Test empty"); | |
| ws.Cells["A1"].Value = "Test"; | |
| package.Encryption.Password = "Test2"; | |
| package.Save(); | |
| //package.SaveAs(new FileInfo(@"c:\temp\test2.xlsx")); | |
| } | |
| } | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15173_1() | |
| { | |
| using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\EPPlusIssues\Excel01.xlsx"))) | |
| { | |
| var sw = new Stopwatch(); | |
| //pck.Workbook.FormulaParser.Configure(x => x.AttachLogger(LoggerFactory.CreateTextFileLogger(new FileInfo(@"c:\Temp\log1.txt")))); | |
| sw.Start(); | |
| var ws = pck.Workbook.Worksheets.First(); | |
| pck.Workbook.Calculate(); | |
| Assert.AreEqual("20L2300", ws.Cells["F4"].Value); | |
| Assert.AreEqual("20K2E01", ws.Cells["F5"].Value); | |
| var f7Val = pck.Workbook.Worksheets["MODELLO-TIPO PANNELLO"].Cells["F7"].Value; | |
| Assert.AreEqual(13.445419, Math.Round((double) f7Val, 6)); | |
| sw.Stop(); | |
| Console.WriteLine(sw.Elapsed.TotalSeconds); // approx. 10 seconds | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15173_2() | |
| { | |
| using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\EPPlusIssues\Excel02.xlsx"))) | |
| { | |
| var sw = new Stopwatch(); | |
| pck.Workbook.FormulaParser.Configure(x => x.AttachLogger(LoggerFactory.CreateTextFileLogger(new FileInfo(@"c:\Temp\log1.txt")))); | |
| sw.Start(); | |
| var ws = pck.Workbook.Worksheets.First(); | |
| //ws.Calculate(); | |
| pck.Workbook.Calculate(); | |
| Assert.AreEqual("20L2300", ws.Cells["F4"].Value); | |
| Assert.AreEqual("20K2E01", ws.Cells["F5"].Value); | |
| sw.Stop(); | |
| Console.WriteLine(sw.Elapsed.TotalSeconds); // approx. 10 seconds | |
| } | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15154() | |
| { | |
| Directory.EnumerateFiles(@"c:\temp\bug\ConstructorInvokationNotThreadSafe\").AsParallel().ForAll(file => | |
| { | |
| //lock (_lock) | |
| //{ | |
| using (var package = new ExcelPackage(new FileStream(file, FileMode.Open))) | |
| { | |
| package.Workbook.Worksheets[1].Cells[1, 1].Value = file; | |
| package.SaveAs(new FileInfo(@"c:\temp\bug\ConstructorInvokationNotThreadSafe\new\"+new FileInfo(file).Name)); | |
| } | |
| //} | |
| }); | |
| } | |
| [Ignore] | |
| [TestMethod] | |
| public void Issue15188() | |
| { | |
| using (var package = new ExcelPackage()) | |
| { | |
| var worksheet = package.Workbook.Worksheets.Add("test"); | |
| worksheet.Column(6).Style.Numberformat.Format = "mm/dd/yyyy"; | |
| worksheet.Column(7).Style.Numberformat.Format = "mm/dd/yyyy"; | |
| worksheet.Column(8).Style.Numberformat.Format = "mm/dd/yyyy"; | |
| worksheet.Column(10).Style.Numberformat.Format = "mm/dd/yyyy"; | |
| worksheet.Cells[2, 6].Value = DateTime.Today; | |
| string a = worksheet.Cells[2,6].Text; | |
| Assert.AreEqual(DateTime.Today.ToString("MM/dd/yyyy"), a); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15194() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bug\i15194-Save.xlsx"), new FileInfo(@"c:\temp\bug\I15194.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| worksheet.Cells["E3:F3"].Merge = false; | |
| worksheet.DeleteRow(2, 6); | |
| package.Save(); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15195() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bug\i15195_Save.xlsx"), new FileInfo(@"c:\temp\bug\i15195.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| worksheet.InsertColumn(8, 2); | |
| package.Save(); | |
| } | |
| } | |
| [TestMethod,Ignore] | |
| public void Issue14788() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bug\i15195_Save.xlsx"), new FileInfo(@"c:\temp\bug\GetWorkSheetXmlBad.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| worksheet.InsertColumn(8, 2); | |
| package.Save(); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15167() | |
| { | |
| FileInfo fileInfo = new FileInfo(@"c:\temp\bug\Draw\input.xlsx"); | |
| ExcelPackage excelPackage = new ExcelPackage(fileInfo); | |
| { | |
| string sheetName = "Board pack"; | |
| ExcelWorksheet ws = excelPackage.Workbook.Worksheets[sheetName]; | |
| excelPackage.Workbook.Worksheets.Delete(ws); | |
| ws = excelPackage.Workbook.Worksheets.Add(sheetName); | |
| excelPackage.SaveAs(new FileInfo(@"c:\temp\bug\output.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15198() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bug\Output.xlsx"), new FileInfo(@"c:\temp\bug\demo.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| worksheet.DeleteRow(12); | |
| package.Save(); | |
| } | |
| } | |
| [TestMethod,Ignore] | |
| public void Issue13492() | |
| { | |
| using (var package = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\temp\bug\Bug13492.xlsx"))) | |
| { | |
| ExcelWorkbook workBook = package.Workbook; | |
| var worksheet = workBook.Worksheets[1]; | |
| var rt = worksheet.Cells["K31"].RichText.Text; | |
| package.Save(); | |
| } | |
| } | |
| [TestMethod,Ignore] | |
| public void Issue14966() | |
| { | |
| using (var package = new ExcelPackage(new FileInfo(@"c:\temp\bug\ssis\FileFromReportingServer2012.xlsx"))) | |
| package.SaveAs(new FileInfo(@"c:\temp\bug\ssis\Corrupted.xlsx")); | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15200() | |
| { | |
| File.Copy(@"C:\temp\bug\EPPlusRangeCopyTest\EPPlusRangeCopyTest\input.xlsx", @"C:\temp\bug\EPPlusRangeCopyTest\EPPlusRangeCopyTest\output.xlsx", true); | |
| using (var p = new ExcelPackage(new FileInfo(@"C:\temp\bug\EPPlusRangeCopyTest\EPPlusRangeCopyTest\output.xlsx"))) | |
| { | |
| var sheet = p.Workbook.Worksheets.First(); | |
| var sourceRange = sheet.Cells[1, 1, 1, 2]; | |
| var resultRange = sheet.Cells[3, 1, 3, 2]; | |
| sourceRange.Copy(resultRange); | |
| sourceRange = sheet.Cells[1, 1, 1, 7]; | |
| resultRange = sheet.Cells[5, 1, 5, 7]; | |
| sourceRange.Copy(resultRange); // This throws System.ArgumentException: Can't merge and already merged range | |
| sourceRange = sheet.Cells[1, 1, 1, 7]; | |
| resultRange = sheet.Cells[7, 3, 7, 7]; | |
| sourceRange.Copy(resultRange); // This throws System.ArgumentException: Can't merge and already merged range | |
| p.Save(); | |
| } | |
| } | |
| [TestMethod] | |
| public void Issue15212() | |
| { | |
| var s="_(\"R$ \"* #,##0.00_);_(\"R$ \"* (#,##0.00);_(\"R$ \"* \"-\"??_);_(@_) )"; | |
| using (var p = new ExcelPackage()) | |
| { | |
| var ws = p.Workbook.Worksheets.Add("StyleBug"); | |
| ws.Cells["A1"].Value = 5698633.64; | |
| ws.Cells["A1"].Style.Numberformat.Format = s; | |
| var t = ws.Cells["A1"].Text; | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15213() | |
| { | |
| using (var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\ExcelClearDemo\exceltestfile.xlsx"))) | |
| { | |
| foreach (var ws in p.Workbook.Worksheets) | |
| { | |
| ws.Cells[1023, 1, ws.Dimension.End.Row-2,ws.Dimension.End.Column].Clear(); | |
| Assert.AreNotEqual(ws.Dimension, null); | |
| } | |
| foreach (var cell in p.Workbook.Worksheets[2].Cells) | |
| { | |
| Console.WriteLine(cell); | |
| } | |
| p.SaveAs(new FileInfo(@"c:\temp\bug\ExcelClearDemo\exceltestfile-save.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issuer15217() | |
| { | |
| using (var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\FormatRowCol.xlsx"))) | |
| { | |
| var ws = p.Workbook.Worksheets.Add("fmt"); | |
| ws.Row(1).Style.Fill.PatternType = ExcelFillStyle.Solid; | |
| ws.Row(1).Style.Fill.BackgroundColor.SetColor(Color.LightGray); | |
| ws.Cells["A1:B2"].Value = 1; | |
| ws.Column(1).Style.Numberformat.Format = "yyyy-mm-dd hh:mm"; | |
| ws.Column(2).Style.Numberformat.Format = "#,##0"; | |
| p.Save(); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issuer15228() | |
| { | |
| using (var p = new ExcelPackage()) | |
| { | |
| var ws = p.Workbook.Worksheets.Add("colBug"); | |
| var col = ws.Column(7); | |
| col.ColumnMax = 8; | |
| col.Hidden = true; | |
| var col8 = ws.Column(8); | |
| Assert.AreEqual(true, col8.Hidden); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issue15234() | |
| { | |
| using (var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\merge2\input.xlsx"))) | |
| { | |
| var sheet = p.Workbook.Worksheets.First(); | |
| var sourceRange = sheet.Cells["1:4"]; | |
| sheet.InsertRow(5, 4); | |
| var resultRange = sheet.Cells["5:8"]; | |
| sourceRange.Copy(resultRange); | |
| p.Save(); | |
| } | |
| } | |
| [TestMethod] | |
| /**** Pivottable issue ****/ | |
| public void Issue() | |
| { | |
| DirectoryInfo outputDir = new DirectoryInfo(@"c:\ExcelPivotTest"); | |
| FileInfo MyFile = new FileInfo(@"c:\temp\bug\pivottable.xlsx"); | |
| LoadData(MyFile); | |
| BuildPivotTable1(MyFile); | |
| BuildPivotTable2(MyFile); | |
| } | |
| private void LoadData(FileInfo MyFile) | |
| { | |
| if (MyFile.Exists) | |
| { | |
| MyFile.Delete(); // ensures we create a new workbook | |
| } | |
| using (ExcelPackage EP = new ExcelPackage(MyFile)) | |
| { | |
| // add a new worksheet to the empty workbook | |
| ExcelWorksheet wsData = EP.Workbook.Worksheets.Add("Data"); | |
| //Add the headers | |
| wsData.Cells[1, 1].Value = "INVOICE_DATE"; | |
| wsData.Cells[1, 2].Value = "TOTAL_INVOICE_PRICE"; | |
| wsData.Cells[1, 3].Value = "EXTENDED_PRICE_VARIANCE"; | |
| wsData.Cells[1, 4].Value = "AUDIT_LINE_STATUS"; | |
| wsData.Cells[1, 5].Value = "RESOLUTION_STATUS"; | |
| wsData.Cells[1, 6].Value = "COUNT"; | |
| //Add some items... | |
| wsData.Cells["A2"].Value = Convert.ToDateTime("04/2/2012"); | |
| wsData.Cells["B2"].Value = 33.63; | |
| wsData.Cells["C2"].Value = (-.87); | |
| wsData.Cells["D2"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E2"].Value = "Pending"; | |
| wsData.Cells["F2"].Value = 1; | |
| wsData.Cells["A3"].Value = Convert.ToDateTime("04/2/2012"); | |
| wsData.Cells["B3"].Value = 43.14; | |
| wsData.Cells["C3"].Value = (-1.29); | |
| wsData.Cells["D3"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E3"].Value = "Pending"; | |
| wsData.Cells["F3"].Value = 1; | |
| wsData.Cells["A4"].Value = Convert.ToDateTime("11/8/2011"); | |
| wsData.Cells["B4"].Value = 55; | |
| wsData.Cells["C4"].Value = (-2.87); | |
| wsData.Cells["D4"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E4"].Value = "Pending"; | |
| wsData.Cells["F4"].Value = 1; | |
| wsData.Cells["A5"].Value = Convert.ToDateTime("11/8/2011"); | |
| wsData.Cells["B5"].Value = 38.72; | |
| wsData.Cells["C5"].Value = (-5.00); | |
| wsData.Cells["D5"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E5"].Value = "Pending"; | |
| wsData.Cells["F5"].Value = 1; | |
| wsData.Cells["A6"].Value = Convert.ToDateTime("3/4/2011"); | |
| wsData.Cells["B6"].Value = 77.44; | |
| wsData.Cells["C6"].Value = (-1.55); | |
| wsData.Cells["D6"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E6"].Value = "Pending"; | |
| wsData.Cells["F6"].Value = 1; | |
| wsData.Cells["A7"].Value = Convert.ToDateTime("3/4/2011"); | |
| wsData.Cells["B7"].Value = 127.55; | |
| wsData.Cells["C7"].Value = (-10.50); | |
| wsData.Cells["D7"].Value = "Unfavorable Price Variance"; | |
| wsData.Cells["E7"].Value = "Pending"; | |
| wsData.Cells["F7"].Value = 1; | |
| using (var range = wsData.Cells[2, 1, 7, 1]) | |
| { | |
| range.Style.Numberformat.Format = "mm-dd-yy"; | |
| } | |
| wsData.Cells.AutoFitColumns(0); | |
| EP.Save(); | |
| } | |
| } | |
| private void BuildPivotTable1(FileInfo MyFile) | |
| { | |
| using (ExcelPackage ep = new ExcelPackage(MyFile)) | |
| { | |
| var wsData = ep.Workbook.Worksheets["Data"]; | |
| var totalRows = wsData.Dimension.Address; | |
| ExcelRange data = wsData.Cells[totalRows]; | |
| var wsAuditPivot = ep.Workbook.Worksheets.Add("Pivot1"); | |
| var pivotTable1 = wsAuditPivot.PivotTables.Add(wsAuditPivot.Cells["A7:C30"], data, "PivotAudit1"); | |
| pivotTable1.ColumGrandTotals = true; | |
| var rowField = pivotTable1.RowFields.Add(pivotTable1.Fields["INVOICE_DATE"]); | |
| rowField.AddDateGrouping(eDateGroupBy.Years); | |
| var yearField = pivotTable1.Fields.GetDateGroupField(eDateGroupBy.Years); | |
| yearField.Name = "Year"; | |
| var rowField2 = pivotTable1.RowFields.Add(pivotTable1.Fields["AUDIT_LINE_STATUS"]); | |
| var TotalSpend = pivotTable1.DataFields.Add(pivotTable1.Fields["TOTAL_INVOICE_PRICE"]); | |
| TotalSpend.Name = "Total Spend"; | |
| TotalSpend.Format = "$##,##0"; | |
| var CountInvoicePrice = pivotTable1.DataFields.Add(pivotTable1.Fields["COUNT"]); | |
| CountInvoicePrice.Name = "Total Lines"; | |
| CountInvoicePrice.Format = "##,##0"; | |
| pivotTable1.DataOnRows = false; | |
| ep.Save(); | |
| ep.Dispose(); | |
| } | |
| } | |
| private void BuildPivotTable2(FileInfo MyFile) | |
| { | |
| using (ExcelPackage ep = new ExcelPackage(MyFile)) | |
| { | |
| var wsData = ep.Workbook.Worksheets["Data"]; | |
| var totalRows = wsData.Dimension.Address; | |
| ExcelRange data = wsData.Cells[totalRows]; | |
| var wsAuditPivot = ep.Workbook.Worksheets.Add("Pivot2"); | |
| var pivotTable1 = wsAuditPivot.PivotTables.Add(wsAuditPivot.Cells["A7:C30"], data, "PivotAudit2"); | |
| pivotTable1.ColumGrandTotals = true; | |
| var rowField = pivotTable1.RowFields.Add(pivotTable1.Fields["INVOICE_DATE"]); | |
| rowField.AddDateGrouping(eDateGroupBy.Years); | |
| var yearField = pivotTable1.Fields.GetDateGroupField(eDateGroupBy.Years); | |
| yearField.Name = "Year"; | |
| var rowField2 = pivotTable1.RowFields.Add(pivotTable1.Fields["AUDIT_LINE_STATUS"]); | |
| var TotalSpend = pivotTable1.DataFields.Add(pivotTable1.Fields["TOTAL_INVOICE_PRICE"]); | |
| TotalSpend.Name = "Total Spend"; | |
| TotalSpend.Format = "$##,##0"; | |
| var CountInvoicePrice = pivotTable1.DataFields.Add(pivotTable1.Fields["COUNT"]); | |
| CountInvoicePrice.Name = "Total Lines"; | |
| CountInvoicePrice.Format = "##,##0"; | |
| pivotTable1.DataOnRows = false; | |
| ep.Save(); | |
| ep.Dispose(); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public string Issue15247(DirectoryInfo outputDir) | |
| { | |
| FileInfo templateFile = new FileInfo(outputDir.FullName + @"\diagonal.xlsx"); | |
| FileInfo newFile = new FileInfo(outputDir.FullName + @"\sampleDiagonal.xlsx"); | |
| if (newFile.Exists) | |
| { | |
| newFile.Delete(); // ensures we create a new workbook | |
| newFile = new FileInfo(outputDir.FullName + @"\sampleDiagonal.xlsx"); | |
| } | |
| using (ExcelPackage package = new ExcelPackage(newFile, templateFile)) | |
| { | |
| //Open worksheet 1 | |
| ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; | |
| Debug.WriteLine(worksheet.Cells["A1"].Style.Border.DiagonalUp); | |
| Debug.WriteLine(worksheet.Cells["A1"].Style.Border.DiagonalDown); | |
| //worksheet.Cells["A1"].Style.Border.DiagonalUp = true; | |
| //worksheet.Cells["A1"].Style.Border.DiagonalDown = true; | |
| // save our new workbook and we are done! | |
| package.Save(); | |
| } | |
| return newFile.FullName; | |
| } | |
| [TestMethod, Ignore] | |
| public void issue15249() | |
| { | |
| using(var exfile=new ExcelPackage(new FileInfo(@"c:\temp\bug\Boldtextcopy.xlsx"))) | |
| { | |
| exfile.Workbook.Worksheets.Copy("sheet1","copiedSheet"); | |
| exfile.SaveAs(new FileInfo(@"c:\temp\bug\Boldtextcopy2.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void issue15300() | |
| { | |
| using (var exfile = new ExcelPackage(new FileInfo(@"c:\temp\bug\headfootpic.xlsx"))) | |
| { | |
| exfile.Workbook.Worksheets.Copy("sheet1","copiedSheet"); | |
| exfile.SaveAs(new FileInfo(@"c:\temp\bug\headfootpic_save.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void issue15295() | |
| { | |
| using (var exfile = new ExcelPackage(new FileInfo(@"C:\temp\bug\pivot issue\input.xlsx"))) | |
| { | |
| exfile.SaveAs(new FileInfo(@"C:\temp\bug\pivot issue\pivotcoldup.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void issue15282() | |
| { | |
| using (var exfile = new ExcelPackage(new FileInfo(@"C:\temp\bug\pivottable-table.xlsx"))) | |
| { | |
| exfile.SaveAs(new FileInfo(@"C:\temp\bug\pivot issue\pivottab-tab-save.xlsx")); | |
| } | |
| } | |
| [TestMethod, Ignore] | |
| public void Issues14699() | |
| { | |
| FileInfo newFile = new FileInfo(string.Format("c:\\temp\\bug\\EPPlus_Issue14699.xlsx", System.IO.Directory.GetCurrentDirectory())); | |
| OfficeOpenXml.ExcelPackage pkg = new ExcelPackage(newFile); | |
| ExcelWorksheet wksheet = pkg.Workbook.Worksheets.Add("Issue14699"); | |
| // Initialize a small range | |
| for (int row = 1; row < 11; row++) | |
| { | |
| for (int col = 1; col < 11; col++) | |
| { | |
| wksheet.Cells[row, col].Value = string.Format("{0}{1}", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[col - 1], row); | |
| } | |
| } | |
| wksheet.View.FreezePanes(3, 3); | |
| pkg.Save(); | |
| } | |
| } | |
| } |