| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Text; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml; |
| using System.IO; |
| using OfficeOpenXml.Drawing.Chart; |
| using OfficeOpenXml.Style; |
| using OfficeOpenXml.Drawing; |
| using OfficeOpenXml.ConditionalFormatting; |
| using System.Threading; |
| using System.Drawing; |
| namespace EPPlusTest |
| { |
| [TestClass] |
| public class ReadTemplate //: TestBase |
| { |
| //[ClassInitialize()] |
| //public static void ClassInit(TestContext testContext) |
| //{ |
| // //InitBase(); |
| //} |
| //[ClassCleanup()] |
| //public static void ClassCleanup() |
| //{ |
| // //SaveWorksheet("Worksheet.xlsx"); |
| //} |
| [TestMethod] |
| public void ReadBlankStream() |
| { |
| MemoryStream stream = new MemoryStream(); |
| using (ExcelPackage pck = new ExcelPackage(stream)) |
| { |
| var ws = pck.Workbook.Worksheets.Add("Perf"); |
| pck.SaveAs(stream); |
| } |
| stream.Close(); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug() |
| { |
| var file = new FileInfo(@"c:\temp\Adenoviridae Protocol.xlsx"); |
| using (ExcelPackage pck = new ExcelPackage(file)) |
| { |
| pck.Workbook.Worksheets[1].Cells["G4"].Value=12; |
| pck.SaveAs(new FileInfo(@"c:\temp\Adenoviridae Protocol2.xlsx")); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug3() |
| { |
| ExcelPackage xlsPack = new ExcelPackage(new FileInfo(@"c:\temp\billing_template.xlsx")); |
| ExcelWorkbook xlsWb = xlsPack.Workbook; |
| ExcelWorksheet xlsSheet = xlsWb.Worksheets["Billing"]; |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug2() |
| { |
| var file = new FileInfo(@"c:\temp\book2.xlsx"); |
| using (ExcelPackage pck = new ExcelPackage(file)) |
| { |
| Assert.AreEqual("Good", pck.Workbook.Worksheets[1].Cells["A1"].StyleName); |
| Assert.AreEqual("Good 2", pck.Workbook.Worksheets[1].Cells["C1"].StyleName); |
| Assert.AreEqual("Note", pck.Workbook.Worksheets[1].Cells["G11"].StyleName); |
| pck.SaveAs(new FileInfo(@"c:\temp\Adenoviridae Protocol2.xlsx")); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void CondFormatDataValBug() |
| { |
| var file = new FileInfo(@"c:\temp\condi.xlsx"); |
| using (ExcelPackage pck = new ExcelPackage(file)) |
| { |
| var dv = pck.Workbook.Worksheets[1].Cells["A1"].DataValidation.AddIntegerDataValidation(); |
| dv.Formula.Value = 1; |
| dv.Formula2.Value = 4; |
| dv.Operator = OfficeOpenXml.DataValidation.ExcelDataValidationOperator.equal; |
| pck.SaveAs(new FileInfo(@"c:\temp\condi2.xlsx")); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void InternalZip() |
| { |
| //var file = @"c:\temp\condi.xlsx"; |
| //using (ExcelPackage pck = new ExcelPackage(file)) |
| //{ |
| //} |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug4() |
| { |
| var lines = new List<string>(); |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\test.xlsx")); |
| |
| ExcelWorkbook workBook = package.Workbook; |
| if (workBook != null) |
| { |
| if (workBook.Worksheets.Count > 0) //fails on this line |
| { |
| // Get the first worksheet |
| ExcelWorksheet currentWorksheet = workBook.Worksheets.First(); |
| |
| var rowCount = 1; |
| var lastRow = currentWorksheet.Dimension.End.Row; |
| var lastColumn = currentWorksheet.Dimension.End.Column; |
| while (rowCount <= lastRow) |
| { |
| var columnCount = 1; |
| var line = ""; |
| while (columnCount <= lastColumn) |
| { |
| line += currentWorksheet.Cells[rowCount, columnCount].Value + "|"; |
| columnCount++; |
| } |
| lines.Add(line); |
| rowCount++; |
| } |
| } |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug5() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\2.9 bugs\protect.xlsx")); |
| |
| package.Workbook.Worksheets[1].Protection.AllowInsertColumns = true; |
| package.Workbook.Worksheets[1].Protection.SetPassword("test"); |
| package.SaveAs(new FileInfo(@"c:\temp\2.9 bugs\protectnew.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug6() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\2.9 bugs\outofrange\error.xlsx")); |
| |
| package.Workbook.Worksheets[1].Protection.AllowInsertColumns = true; |
| package.Workbook.Worksheets[1].Protection.SetPassword("test"); |
| package.SaveAs(new FileInfo(@"c:\temp\2.9 bugs\error.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug7() |
| { |
| var package = new ExcelPackage(); |
| var ws = package.Workbook.Worksheets.Add("test"); |
| using (var rng = ws.Cells["A1"]) |
| { |
| var rt1 = rng.RichText.Add("TEXT1\r\n"); |
| rt1.Bold = true; |
| rng.Style.WrapText = true; |
| var rt2=rng.RichText.Add("TEXT2"); |
| rt2.Bold = false; |
| } |
| |
| package.SaveAs(new FileInfo(@"c:\temp\2.9 bugs\error.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug8() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\2.9 bugs\bug\Genband SO CrossRef Phoenix.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| using (var rng = ws.Cells["A1"]) |
| { |
| var rt1 = rng.RichText.Add("TEXT1\r\n"); |
| rt1.Bold = true; |
| rng.Style.WrapText = true; |
| var rt2 = rng.RichText.Add("TEXT2"); |
| rt2.Bold = false; |
| } |
| |
| package.SaveAs(new FileInfo(@"c:\temp\2.9 bugs\billing_template.xlsx.error")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug9() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\CovenantsCheckReportTemplate.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| package.SaveAs(new FileInfo(@"c:\temp\2.9 bugs\new_t.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug10() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\Model_graphes_MBW.xlsm")); |
| |
| var ws = package.Workbook.Worksheets["HTTP_data"]; |
| Assert.IsNotNull(ws.Cells["B4"].Style.Fill.BackgroundColor.Indexed); |
| Assert.IsNotNull(ws.Cells["B5"].Style.Fill.BackgroundColor.Indexed); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug11() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\sample.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| var pck2 = new ExcelPackage(); |
| pck2.Workbook.Worksheets.Add("Test", ws); |
| pck2.SaveAs(new FileInfo(@"c:\temp\SampleNew.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadConditionalFormatting() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\cf2.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| ws.Cells["A1"].Value = 1; |
| Assert.AreEqual(ws.ConditionalFormatting[6].Type, eExcelConditionalFormattingRuleType.Equal); |
| package.SaveAs(new FileInfo(@"c:\temp\condFormTest.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadStyleBug() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\acquisitions-1993-2.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| ws.Cells["A1"].Value = 1; |
| package.SaveAs(new FileInfo(@"c:\temp\condFormTest.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadURL() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\bug\url.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| ws.Cells["A1"].Value = 1; |
| package.SaveAs(new FileInfo(@"c:\temp\condFormTest.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadNameError() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\names2.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| ws.Cells["A1"].Value = 1; |
| package.SaveAs(new FileInfo(@"c:\temp\TestTableSave.xlsx")); |
| } |
| [TestMethod, Ignore] |
| public void ReadBug12() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\bug\test4.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| ws.Cells["A1"].Value = 1; |
| //ws.Column(0).Style.Font.Bold = true; |
| package.SaveAs(new FileInfo(@"c:\temp\bug2.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug13() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\original.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| package.Workbook.Calculate(new OfficeOpenXml.FormulaParsing.ExcelCalculationOption() { AllowCirculareReferences = true }); |
| package.SaveAs(new FileInfo(@"c:\temp\bug2.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug14() |
| { |
| var package = new ExcelPackage(); |
| var ws = package.Workbook.Worksheets.Add("Comment"); |
| ws.Cells["A1"].AddComment("Test av kommentar", "J"); |
| ws.Comments.RemoveAt(0); |
| package.SaveAs(new FileInfo(@"c:\temp\bug\CommentTest.xlsx")); |
| } |
| [Ignore] |
| [TestMethod] |
| public void ReadBug15() |
| { |
| var package = new ExcelPackage(new FileInfo(@"c:\temp\bug\ColumnMaxError.xlsx")); |
| var ws = package.Workbook.Worksheets[1]; |
| var col = ws.Column(1); |
| col.Style.Fill.PatternType = ExcelFillStyle.Solid; |
| col.Style.Fill.BackgroundColor.SetColor(Color.Red); |
| package.SaveAs(new FileInfo(@"c:\temp\bug2.xlsx")); |
| } |
| #region "Threading Cellstore Test" |
| public int _threadCount=0; |
| ExcelPackage _pckThread; |
| [TestMethod, Ignore] |
| public void ThreadingTest() |
| { |
| _pckThread = new ExcelPackage(); |
| var ws = _pckThread.Workbook.Worksheets.Add("Threading"); |
| |
| for (int t = 0; t < 20; t++) |
| { |
| var ts=new ThreadState(Finnished) |
| { |
| ws=ws, |
| StartRow=1+(t*1000), |
| Rows=1000, |
| }; |
| var tstart=new ThreadStart(ts.StartLoad); |
| var thread = new Thread(tstart); |
| _threadCount++; |
| thread.Start(); |
| } |
| while (1 == 1) |
| { |
| if (_threadCount == 0) |
| { |
| _pckThread.SaveAs(new FileInfo("c:\\temp\\thread.xlsx")); |
| break; |
| } |
| Thread.Sleep(1000); |
| } |
| } |
| public void Finnished() |
| { |
| _threadCount--; |
| } |
| private class ThreadState |
| { |
| public ThreadState(cbFinished cb) |
| { |
| _cb = cb; |
| } |
| public ExcelWorksheet ws { get; set; } |
| public int StartRow { get; set; } |
| public int Rows { get; set; } |
| public delegate void cbFinished(); |
| public cbFinished _cb; |
| public void StartLoad() |
| { |
| for(int row=StartRow;row<StartRow+Rows;row++) |
| { |
| for (int col = 1; col < 100; col++) |
| { |
| ws.SetValue(row,col,string.Format("row {0} col {1}", row,col)); |
| } |
| } |
| _cb(); |
| } |
| } |
| #endregion |
| [Ignore] |
| [TestMethod] |
| public void TestInvalidVBA() |
| { |
| const string infile=@"C:\temp\bug\Infile.xlsm"; |
| const string outfile=@"C:\temp\bug\Outfile.xlsm"; |
| ExcelPackage ep; |
| |
| using (FileStream fs = File.OpenRead(infile)) |
| { |
| ep = new ExcelPackage(fs); |
| } |
| |
| using (FileStream fs = File.OpenWrite(outfile)) |
| { |
| ep.SaveAs(fs); |
| } |
| |
| using (FileStream fs = File.OpenRead(outfile)) |
| { |
| ep = new ExcelPackage(fs); |
| } |
| |
| using (FileStream fs = File.OpenWrite(outfile)) |
| { |
| ep.SaveAs(fs); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void StreamTest() |
| { |
| using (var templateStream = File.OpenRead(@"c:\temp\thread.xlsx")) |
| { |
| |
| using (var outStream = File.Open(@"c:\temp\streamOut.xlsx", FileMode.Create, FileAccess.ReadWrite, FileShare.None)) |
| { |
| using (var package = new ExcelPackage(outStream, templateStream)) |
| { |
| package.Workbook.Worksheets[1].Cells["A1"].Value = 1; |
| // Create more content |
| package.Save(); |
| } |
| } |
| } |
| } |
| [TestMethod, Ignore] |
| public void test() |
| { |
| CreateXlsxSheet(@"C:\temp\bug\test4.xlsx", 4, 4); |
| CreateXlsxSheet(@"C:\temp\bug\test25.xlsx", 25, 25); |
| } |
| [Ignore] |
| [TestMethod] |
| public void I15038() |
| { |
| using(var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\15038.xlsx"))) |
| { |
| var ws=p.Workbook.Worksheets[1]; |
| |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void I15039() |
| { |
| using (var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\15039.xlsm"))) |
| { |
| var ws = p.Workbook.Worksheets[1]; |
| |
| p.SaveAs(new FileInfo(@"c:\temp\bug\15039-saved.xlsm")); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void I15030() |
| { |
| using (var newPack = new ExcelPackage(new FileInfo(@"c:\temp\bug\I15030.xlsx"))) |
| { |
| var wkBk = newPack.Workbook.Worksheets[1]; |
| var cell = wkBk.Cells["A1"]; |
| if (cell.Comment != null) |
| { |
| cell.Comment.Text = "Hello edited comments"; |
| } |
| newPack.SaveAs(new FileInfo(@"c:\temp\bug\15030-save.xlsx")); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void I15014() |
| { |
| using (var p = new ExcelPackage(new FileInfo(@"c:\temp\bug\ClassicWineCompany.xlsx"))) |
| { |
| var ws = p.Workbook.Worksheets[1]; |
| Assert.AreEqual("SFFSectionHeading00", ws.Cells[5, 2].StyleName); |
| } |
| } |
| [Ignore] |
| [TestMethod] |
| public void I15043() |
| { |
| using (var p = new ExcelPackage(new FileInfo(@"C:\temp\bug\EPPlusTest\EPPlusTest\EPPlusTest\example.xlsx"))) |
| { |
| var ws = p.Workbook.Worksheets[1]; |
| p.Workbook.Worksheets.Copy(ws.Name, "Copy"); |
| } |
| } |
| [TestMethod, Ignore] |
| public void whitespace() |
| { |
| using (var p = new ExcelPackage(new FileInfo(@"C:\temp\bug\GridToExcel_05-12-2014.xlsx"))) |
| { |
| var ws = p.Workbook.Worksheets[1]; |
| foreach (var cell in ws.Cells[1,84,3,86]) |
| { |
| Console.WriteLine(cell.Address); |
| } |
| } |
| } |
| [TestMethod, Ignore] |
| public void SaveCorruption() |
| { |
| using (var p = new ExcelPackage(new FileInfo(@"C:\temp\bug\tables.xlsx"))) |
| { |
| var ws = p.Workbook.Worksheets[1]; |
| p.SaveAs(new FileInfo(@"c:\temp\bug\corr.xlsx")); |
| } |
| } |
| [TestMethod] |
| public void VBAerror() |
| { |
| ExcelWorksheet ws; |
| using (var p = new ExcelPackage()) |
| { |
| p.Workbook.CreateVBAProject(); |
| ws = p.Workbook.Worksheets.Add("Градуировка"); |
| using (var p2 = new ExcelPackage()) |
| { |
| p2.Workbook.CreateVBAProject(); |
| var ws2 = p2.Workbook.Worksheets.Add("Градуировка2", ws); |
| } |
| } |
| } |
| |
| [TestMethod, Ignore] |
| public void CopyIssue() |
| { |
| using (var pkg = new ExcelPackage()) |
| { |
| var templateFile = ReadTemplateFile(@"C:\temp\bug\StackOverflow\EPPlusTest\20141120_01_3.各股累計收結表 (其他案件).xlsx"); |
| using (var ms = new System.IO.MemoryStream(templateFile)) |
| { |
| using (var tempPkg = new ExcelPackage(ms)) |
| { |
| pkg.Workbook.Worksheets.Add("20141120_01_3.各股累計收結表 (其他案件)", tempPkg.Workbook.Worksheets.First()); |
| } |
| } |
| } |
| } |
| [TestMethod, Ignore] |
| public void FileStreamSave() |
| { |
| var fs = File.Create(@"c:\temp\fs.xlsx"); |
| using (var pkg = new ExcelPackage(fs)) |
| { |
| var ws=pkg.Workbook.Worksheets.Add("test"); |
| ws.Cells["A1"].Value = 1; |
| var col=ws.Column(1); |
| col.OutlineLevel = 1; |
| col.ColumnMax = ExcelPackage.MaxColumns; |
| col.ColumnMax = 1; |
| pkg.Save(); |
| } |
| } |
| public static byte[] ReadTemplateFile(string templateName) |
| { |
| byte[] templateFIle; |
| using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) |
| { |
| using (var sw = new System.IO.FileStream(templateName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)) |
| { |
| byte[] buffer = new byte[2048]; |
| int bytesRead; |
| while ((bytesRead = sw.Read(buffer, 0, buffer.Length)) > 0) |
| { |
| ms.Write(buffer, 0, bytesRead); |
| } |
| } |
| ms.Position = 0; |
| templateFIle = ms.ToArray(); |
| } |
| return templateFIle; |
| } |
| |
| private static void CreateXlsxSheet(string pFileName, int pRows, int pColumns) |
| { |
| if (File.Exists(pFileName)) File.Delete(pFileName); |
| |
| using (ExcelPackage excelPackage = new ExcelPackage(new FileInfo(pFileName))) |
| { |
| ExcelWorksheet excelWorksheet = excelPackage.Workbook.Worksheets.Add("Testsheet"); |
| |
| // Fill with data |
| for (int row = 1; row <= pRows; row++) |
| { |
| for (int column = 1; column <= pColumns; column++) |
| { |
| if (column > 1 && row > 2) |
| { |
| using (ExcelRange range = excelWorksheet.Cells[row, column]) |
| { |
| range.Style.Numberformat.Format = "0"; |
| range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; |
| range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; |
| } |
| excelWorksheet.Cells[row, column].Value = row * column; |
| } |
| } |
| } |
| |
| // Try to style the first column, begining with row 3 which has no content yet... |
| using (ExcelRange range = excelWorksheet.Cells[ExcelCellBase.GetAddress(3, 1, pRows, 1)]) |
| { |
| ExcelStyle style = range.Style; |
| } |
| |
| // now I would add data to the first column (left out here)... |
| excelPackage.Save(); |
| } |
| } |
| } |
| } |