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