//create a new workbook var workbook = new GrapeCity.Documents.Excel.Workbook(); GrapeCity.Documents.Excel.Workbook.AddCustomFunction(new MyIsMergedRangeFunctionX()); IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["A1:B2"].Merge(); worksheet.Range["C1"].Formula = "=MyIsMergedRange(A1)"; worksheet.Range["C2"].Formula = "=MyIsMergedRange(H2)"; //A1 is a merged cell, Range["C1"]'s value is true. var resultC1 = worksheet.Range["C1"].Value; //H2 is not a merged cell, Range["C2"]'s value is false. var resultC2 = worksheet.Range["C2"].Value; /* Implementation of MyIsErrorFunctionX public class MyIsMergedRangeFunctionX : CustomFunction { public MyIsMergedRangeFunctionX() : base("MyIsMergedRange", FunctionValueType.Boolean, new Parameter[] { new Parameter(FunctionValueType.Object, true) }) { } public override object Evaluate(object[] arguments, ICalcContext context) { if (arguments[0] is CalcReference) { IEnumerable<IRange> ranges = (arguments[0] as CalcReference).GetRanges(); foreach (var range in ranges) { return range.MergeCells; } } return false; } } */
' Create a new Workbook Dim workbook As New Workbook Excel.Workbook.AddCustomFunction(New MyIsMergedRangeFunctionX) Dim worksheet As IWorksheet = workbook.Worksheets(0) worksheet.Range("A1:B2").Merge() worksheet.Range!C1.Formula = "=MyIsMergedRange(A1)" worksheet.Range!C2.Formula = "=MyIsMergedRange(H2)" ' A1 is a merged cell, Range!C1.Value = True. Dim resultC1 = worksheet.Range!C1.Value ' H2 is not a merged cell, Range!C2.Value = False. Dim resultC2 = worksheet.Range!C2.Value ' Implementation of MyIsErrorFunctionX ' ' Public Class MyIsMergedRangeFunctionX ' Inherits CustomFunction ' Public Sub New() ' MyBase.New("MyIsMergedRange", FunctionValueType.Boolean, {New Parameter(FunctionValueType.Object, True)}) ' End Sub ' Public Overrides Function Evaluate(arguments As Object(), context As ICalcContext) As Object ' Dim calcReference = TryCast(arguments(0), CalcReference) ' Dim firstCellMerged = calcReference?.GetRanges.FirstOrDefault.MergeCells ' Return firstCellMerged.GetValueOrDefault ' End Function ' End Class