Sample VB .NET Code: Formula Calculations

<%@ Page Language="VB"%>

<%@ Import Namespace="PagosSpreadSheet" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

      Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

            If Not Page.IsPostBack Then

                  'Prepare "Current age" input

                  For i As Integer = 0 To 65

                        DdlCurrent_Age.Items.Add(i.ToString())

                  Next

 

                  DdlCurrent_Age.SelectedValue = "36"

 

                  'Prepare "Desired retirement age" input

                  For i As Integer = 45 To 85

                        DdlDesired_Retirement_Age.Items.Add(i.ToString())

                  Next

 

                  DdlDesired_Retirement_Age.SelectedValue = "80"

            End If

      End Sub

 

      Public Sub BtnCalculate_Click(ByVal sender As Object, ByVal e As EventArgs)

            'Create an instance of the application

            Dim app As New Application()

 

            'Open retirement workbook

            app.Workbooks.Open(Server.MapPath("Spreadsheets/Retirement/Retirement.xls"))

 

            'Load workbook

            Dim wb As Workbook = app.Workbooks("Retirement.xls")

 

            'Set input values

            wb.Names("Current_Age").Range.Value = Integer.Parse(DdlCurrent_Age.SelectedValue)

            wb.Names("Desired_Retirement_Age").Range.Value = Integer.Parse(DdlDesired_Retirement_Age.SelectedValue)

            wb.Names("Monthly_savings").Range.Value = Integer.Parse(TxtMonthly_savings.Text)

            wb.Names("Annual_Investment_growth_rate").Range.Value = Double.Parse(TxtAnnual_Investment_growth_rate.Text)

            wb.Names("Annual_Salary_Increase_Rate").Range.Value = Double.Parse(TxtAnnual_Salary_Increase_Rate.Text)

 

            'Display output

            LblRetirement_Nest_Egg.Text = String.Format("{0:C}", wb.Names("Retirement_Nest_Egg").Range.Value)

            Lblduration.Text = wb.Names("duration").Range.Value.ToString()

            HTOutput.Visible = True

      End Sub

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Retirement</title>

    <style type="text/css">

    TD, INPUT, SELECT

    {

            font-family: Arial;

            font-size: 10pt;

      }

     

      TABLE#HTInput, #HTOutput

      {

            border-top:solid 1px #C0C0C0;

            border-left:solid 1px #C0C0C0;

      }

     

      TABLE#HTInput TD, TABLE#HTOutput TD

      {

            border-bottom:solid 1px #C0C0C0;

            border-right:solid 1px #C0C0C0;

      }

     

      TABLE#HTOutput TD

      {

            background-color:#CCCCFF;

      }

    </style>

</head>

<body>

    <form id="form1" runat="server">

    <div>

            <table border="0" cellpadding="0" cellspacing="0" width="600" id="HTInput" runat="server">

                  <tr>

                        <td style="width: 328px">

                             Current Age

                        </td>

                        <td>

                             <asp:DropDownList ID="DdlCurrent_Age" runat="server">

                             </asp:DropDownList></td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                             Desired Retirement Age

                        </td>

                        <td>

                             <asp:DropDownList ID="DdlDesired_Retirement_Age" runat="server">

                             </asp:DropDownList></td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                             Monthly savings

                        </td>

                        <td>

                             <asp:TextBox ID="TxtMonthly_savings" runat="server">100</asp:TextBox>

                             <asp:RangeValidator ID="RVTxtMonthly_savings" runat="server" ControlToValidate="TxtMonthly_savings"

                                   Display="None" ErrorMessage="Montly savings must be in between 1 and 100000"

                                   MaximumValue="100000" MinimumValue="1" SetFocusOnError="True" Type="Integer"></asp:RangeValidator>

                             <asp:RequiredFieldValidator ID="RfvTxtMonthly_savings" runat="server" ControlToValidate="TxtMonthly_savings"

                                   Display="None" ErrorMessage="Please enter montly savings" SetFocusOnError="True"></asp:RequiredFieldValidator></td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                              Annual Investment growth rate (between 0-1)

                        </td>

                        <td>

                             <asp:TextBox ID="TxtAnnual_Investment_growth_rate" runat="server">0,05</asp:TextBox><asp:RequiredFieldValidator

                                   ID="RfvTxtAnnual_Investment_growth_rate" runat="server" ControlToValidate="TxtAnnual_Investment_growth_rate"

                                   Display="None" ErrorMessage="Please enter annual investment growth " SetFocusOnError="True"></asp:RequiredFieldValidator>

                             <asp:RangeValidator ID="RVTxtAnnual_Investment_growth_rate" runat="server" ControlToValidate="TxtAnnual_Investment_growth_rate"

                                   Display="None" ErrorMessage="Annual investment growth  must be in between 0 and 1"

                                   MaximumValue="1" MinimumValue="0" SetFocusOnError="True" Type="Double"></asp:RangeValidator></td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                             Annual Salary Increase Rate (between 0-1)

                        </td>

                        <td>

                             <asp:TextBox ID="TxtAnnual_Salary_Increase_Rate" runat="server">0,05</asp:TextBox><asp:RequiredFieldValidator

                                   ID="RfvTxtAnnual_Salary_Increase_Rate" runat="server" ControlToValidate="TxtAnnual_Salary_Increase_Rate"

                                   Display="None" ErrorMessage="Please enter annual salary increase rate" SetFocusOnError="True"></asp:RequiredFieldValidator>

                             <asp:RangeValidator ID="RVTxtAnnual_Salary_Increase_Rate" runat="server" ControlToValidate="TxtAnnual_Salary_Increase_Rate"

                                   Display="None" ErrorMessage="Annual salary increase rate must be in between 0 and 1"

                                   MaximumValue="1" MinimumValue="0" SetFocusOnError="True" Type="Double"></asp:RangeValidator></td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                             &nbsp;</td>

                        <td>

                             &nbsp;</td>

                  </tr>

                  <tr>

                        <td style="width: 328px">

                             &nbsp;<asp:ValidationSummary ID="VSRetirement" runat="server" ShowMessageBox="True"

                                   ShowSummary="False" />

                        </td>

                        <td>

                             <asp:Button ID="BtnCalculate" runat="server" Text="Calculate" OnClick="BtnCalculate_Click" /></td>

                  </tr>

            </table>

            <br />

            <table border="0" cellpadding="0" cellspacing="0" width="600" id="HTOutput" runat="server" visible="false">

                  <tr>

                        <td style="width: 328px">

                             Retirement Nest Egg in $

                        </td>

                        <td>

                             <asp:Label ID="LblRetirement_Nest_Egg" runat="server" Font-Bold="True"></asp:Label></td>

                  </tr>

                  <tr>

                        <td style="width: 328px; height: 19px;">

                             Duration (max 100 years)

                        </td>

                        <td style="height: 19px">

                             <asp:Label ID="Lblduration" runat="server" Font-Bold="True"></asp:Label></td>

                  </tr>

            </table>

   

    </div>

    </form>

</body>

</html>