Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Example
Code Block
csharp
csharp
titleC#
//Sort area with headers by the first column ascending 
Area a = WB[0].CreateArea("A1:C6");
a.Sort(0, true, true);
            
//Sort area with headers by first column descending
Area b = WB[0].CreateArea("A10:C15");
b.Sort(0, false, true);
            
//Sort area without headers by the first column ascending
Area c = WB[0].CreateArea("E2:G6");
c.Sort(0, true, false);
            
//Sort area without headers by the first column descending
Area d = WB[0].CreateArea("E11:G15");
d.Sort(0, false, false);
Code Block
vbnet
vbnet
titlevb.net
Class'Sort Concatarea 	Implementswith IFunctionheaders 
	//Your custom function should be called Calculate and have the same signature as the sample function below 
	Public Function Calculate(args As IList(Of FunctionValue), currentCell As Cell) As FunctionValue
	        //Implement the custom logic you want to calculate your custom/overridden Excel function 		
                Dim result As New StringBuilder("")
		For Each arg As FunctionValue In args
			result.Append(",")

			Select Case arg.Type
				Case FunctionValueType.[BOOLEAN]
					result.Append(If(CBool(arg.Value), "True", "False"))
					Exit Select
				Case FunctionValueType.[STRING]
					result.Append(arg.Value)
					Exit Select
				Case FunctionValueType.NUMBER
					result.Append(CDbl(arg.Value).ToString("0.#####"))
					Exit Select
				Case FunctionValueType.NULL
					result.Append(" ")
					Exit Select
				Case FunctionValueType.RANGE
					result.Append(arg.Value.ToString())
					Exit Select
			End Select
		Next

 		//Must return a FunctionValue object
		Return New FunctionValue(result.ToString())
	End Function
End Classby the first column ascending 
Dim a As Area = WB(0).CreateArea("A1:C6")
a.Sort(0, True, True)


'Sort area with headers by first column descending
Dim b As Area = WB(0).CreateArea("A10:C15")
b.Sort(0, False, True)


'Sort area without headers by the first column ascending
Dim c As Area = WB(0).CreateArea("E2:G6")
c.Sort(0, True, False)


'Sort area without headers by the first column descending
Dim d As Area = WB(0).CreateArea("E11:G15")
d.Sort(0, False, False)