FormulaSamplesVB

 
Imports GemBox.Spreadsheet

Module FormulaSamplesVB

    Sub Main()
        ' TODO: If using GemBox.Spreadsheet Professional, put your serial key below.
        ' Otherwise, if you are using GemBox.Spreadsheet Free, comment out the 
        ' following line (Free version doesn't have SetLicense method). 
        ' SpreadsheetInfo.SetLicense("YOUR-SERIAL-KEY-HERE")

        Dim excelFile As ExcelFile = New ExcelFile

        CreateFormulaFile(excelFile)

        Dim fileName As String = "FormulasVB.xls"
        excelFile.SaveXls(fileName)
        ' Uncomment if you want to export in XLSX.
        'Dim fileName As String = "FormulasVB.xlsx"
        'excelFile.SaveXlsx(fileName)

        TryToDisplayGeneratedFile(fileName)
    End Sub

    Sub CreateFormulaFile(ByVal excelFile As ExcelFile)
        Dim rowIndex As Integer = 0

        Dim sheet1 As ExcelWorksheet = ExcelFile.Worksheets.Add("sheet1")
        Dim sheet2 As ExcelWorksheet = ExcelFile.Worksheets.Add("sheet2")

        sheet1.Columns(0).Width = 35 * 256
        sheet1.Columns(1).Width = 15 * 256
        sheet1.Columns(2).Width = 15 * 256

        sheet1.Cells(rowIndex, 0).Value = "Examples of typical formulas usage:"
        rowIndex = rowIndex + 2

        sheet1.Cells(rowIndex, 0).Value = "Some data:"
        sheet1.Cells(rowIndex, 1).Value = 3
        sheet1.Cells(rowIndex, 2).Value = 4.1
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 1).Value = 5.2
        sheet1.Cells(rowIndex, 2).Value = 6
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 1).Value = 7
        sheet1.Cells(rowIndex, 2).Value = 8.3
        rowIndex = rowIndex + 1

        ' Named ranges.
        Dim namedRange As String = "Range1"
        sheet1.NamedRanges.Add(namedRange, sheet1.Cells.GetSubrange("B3", "C4"))

        ' Floats without first digit.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Float number without first digit:"
        sheet1.Cells(rowIndex, 1).Formula = "=.5/23+.1-2"

        ' Function using named range.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Named range:"
        sheet1.Cells(rowIndex, 1).Formula = "=SUM(" + namedRange + ")"

        ' 3D sheet references.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "3d sheet reference:"
        sheet1.Cells(rowIndex, 1).Formula = "=sheet2!$C$2"

        ' 3D area sheet references.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "3d area sheet reference:"
        sheet1.Cells(rowIndex, 1).Formula = "=AVERAGE(sheet2!$A$2:C$2)"

        ' Function's miss argument.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Function's miss arguments:"
        sheet1.Cells(rowIndex, 1).Formula = "=Count(1,  ,  ,,,2, 23,,,,,, 34,,,54,,,,  ,)"

        ' Functions are case-insensitive.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Functions are case-insensitive:"
        sheet1.Cells(rowIndex, 1).Formula = "=cOs( 1 )"

        ' Functions.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Supported functions:"

        Dim nextFunction As String
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Results"
        sheet1.Cells(rowIndex, 1).Value = "Formulas"
        rowIndex = rowIndex + 1

        nextFunction = "=NOW()+123"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SECOND(12)/23"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MINUTE(24)-1343/35"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=(HOUR(56)-23/35)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=WEEKDAY(5)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=YEAR(23)-WEEKDAY(5)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MONTH(3)-2342/235345"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=((DAY(1)))"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=TIME(1,2,3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=DATE(1,2,3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=RAND()"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=TEXT(" + Chr(34) + "text" + Chr(34) + ", " + Chr(34) + "$d" + Chr(34) + ")"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=VAR(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MOD(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=NOT(FALSE)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=OR(FALSE)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=AND(TRUE)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=FALSE()"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=TRUE()"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=VALUE(3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=LEN(" + Chr(34) + "hello" + Chr(34) + ")"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MID(" + Chr(34) + "hello" + Chr(34) + ",1,1)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=ROUND(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SIGN(-2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=INT(3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=ABS(-3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=LN(2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=EXP(4)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SQRT(2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=PI()"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=COS(4)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SIN(3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MAX(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=MIN(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=AVERAGE(1,2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SUM(1,3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=IF(1,2,3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=COUNT(1,2,3)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=SUBTOTAL(1,sheet2!A2:C2)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=ACOS(0.23)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=RADIANS(45)"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1

        nextFunction = "=HYPERLINK(""http://www.GemBoxSoftware.com"",""GemBox Software"")"
        sheet1.Cells(rowIndex, 0).Formula = nextFunction
        sheet1.Cells(rowIndex, 0).Style.Font.UnderlineStyle = UnderlineStyle.Single
        sheet1.Cells(rowIndex, 0).Style.Font.Color = Color.Blue
        sheet1.Cells(rowIndex, 1).Value = nextFunction
        rowIndex = rowIndex + 1
        
        ' Paranthless checks.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Paranthless:"
        sheet1.Cells(rowIndex, 1).Formula = "=((12+2343+34545))"

        ' Unary operators.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Unary operators:"
        sheet1.Cells(rowIndex, 1).Formula = "=B5%"
        sheet1.Cells(rowIndex, 2).Formula = "=+++B5"

        ' Operand tokens, bool.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Bool values:"
        sheet1.Cells(rowIndex, 1).Formula = "=TRUE"
        sheet1.Cells(rowIndex, 2).Formula = "=FALSE"

        ' Operand tokens, int.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Integer values:"
        sheet1.Cells(rowIndex, 1).Formula = "=1"
        sheet1.Cells(rowIndex, 2).Formula = "=20"

        ' Operand tokens, num.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Float values:"
        sheet1.Cells(rowIndex, 1).Formula = "=.4"
        sheet1.Cells(rowIndex, 2).Formula = "=2235.5132"

        ' Operand tokens, str.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "String values:"
        sheet1.Cells(rowIndex, 1).Formula = "=" + Chr(34) + "hello world!" + Chr(34)

        ' Operand tokens, error.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Error values:"
        sheet1.Cells(rowIndex, 1).Formula = "=#NULL!"
        sheet1.Cells(rowIndex, 2).Formula = "=#DIV/0!"

        ' Binary operators.
        rowIndex = rowIndex + 1
        sheet1.Cells(rowIndex, 0).Value = "Binary operators:"
        sheet1.Cells(rowIndex, 1).Formula = "=(1)-(2)+(3/2+34)/2+12232-32-4"

        ' Another sheet.
        rowIndex = 0
        sheet2.Cells(rowIndex, 0).Value = "Some data on another sheet:"
        rowIndex = rowIndex + 1
        sheet2.Cells(rowIndex, 0).Value = 33
        sheet2.Cells(rowIndex, 1).Value = 44.1
        sheet2.Cells(rowIndex, 2).Value = 55.2
        rowIndex = rowIndex + 1
        sheet2.Cells(rowIndex, 0).Value = 66
        sheet2.Cells(rowIndex, 1).Value = 77
        sheet2.Cells(rowIndex, 2).Value = 88.3
    End Sub

    Sub TryToDisplayGeneratedFile(ByVal fileName As String)
        Try
            System.Diagnostics.Process.Start(fileName)
        Catch
            Console.WriteLine(fileName + " created in application folder.")
        End Try
    End Sub
End Module

 

Excel Read and Write .NET Component with Open XML Support