blob: 79cc513d2ac706ddec8efb13c9ada7d1c07bd762 [file] [log] [blame]
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();
}
}
}