| using System; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml; |
| |
| namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions.ExcelRanges |
| { |
| [TestClass] |
| public class WorksheetRefsTest |
| { |
| private ExcelPackage _package; |
| private ExcelWorksheet _firstSheet; |
| private ExcelWorksheet _secondSheet; |
| |
| [TestInitialize] |
| public void Init() |
| { |
| _package = new ExcelPackage(); |
| _firstSheet = _package.Workbook.Worksheets.Add("sheet1"); |
| _secondSheet = _package.Workbook.Worksheets.Add("sheet2"); |
| _firstSheet.Cells["A1"].Value = 1; |
| _firstSheet.Cells["A2"].Value = 2; |
| } |
| |
| [TestCleanup] |
| public void Cleanup() |
| { |
| |
| _package.Dispose(); |
| } |
| |
| [TestMethod] |
| public void ShouldHandleReferenceToOtherSheet() |
| { |
| _secondSheet.Cells["A1"].Formula = "SUM('sheet1'!A1:A2)"; |
| _secondSheet.Calculate(); |
| Assert.AreEqual(3d, _secondSheet.Cells["A1"].Value); |
| } |
| |
| [TestMethod] |
| public void ShouldHandleReferenceToOtherSheetWithComplexName() |
| { |
| var sheet = _package.Workbook.Worksheets.Add("ab#k..2"); |
| sheet.Cells["A1"].Value = 1; |
| sheet.Cells["A2"].Value = 2; |
| _secondSheet.Cells["A1"].Formula = "SUM('ab#k..2'A1:A2)"; |
| _secondSheet.Calculate(); |
| Assert.AreEqual(3d, _secondSheet.Cells["A1"].Value); |
| } |
| |
| [TestMethod] |
| public void ShouldHandleInvalidRef() |
| { |
| var sheet = _package.Workbook.Worksheets.Add("ab#k..2"); |
| sheet.Cells["A1"].Value = 1; |
| sheet.Cells["A2"].Value = 2; |
| _secondSheet.Cells["A1"].Formula = "SUM('ab#k..2A1:A2')"; |
| _secondSheet.Calculate(); |
| Assert.IsInstanceOfType(_secondSheet.Cells["A1"].Value, typeof(ExcelErrorValue)); |
| } |
| } |
| } |