Post

# Convert Given Number To Words And Show In Excel

Suppose you need to show your given number in words like this,

First, you have to create a Class like this(below),

``````Public Class NumberInWord
Public Shared SpaceString As String = " "
Public Enum RootNumbers
Zero = 0
One = 1
Two = 2
Three = 3
Four = 4
Five = 5
Six = 6
Seven = 7
Eight = 8
Nine = 9
Ten = 10
Eleven = 11
Twelve = 12
Thirteen = 13
Fourteen = 14
Fifteen = 15
Sixteen = 16
Seventeen = 17
Eighteen = 18
Nineteen = 19
Twenty = 20
Thirty = 30
Forty = 40
Fifty = 50
Sixty = 60
Seventy = 70
Eighty = 80
Ninety = 90
Hundred = 100
Thousand = 1000
Lakhs = 100000
Crore = 10000000

End Enum
Public Shared Function GetRootNumberWord(ByVal number As Integer) As String
Dim myNumberWord = [Enum].GetName(GetType(RootNumbers), number)
'If myNumberWord.Equals("Zero") Then
'    myNumberWord = " "
'End If
Return myNumberWord
End Function
Public Shared Function GetSourcesNumber(number As Decimal) As Dictionary(Of String, String)

Dim myMoneyInSrt As String = number.ToString
Dim dictionary As New Dictionary(Of String, String)
Dim result As New System.Text.StringBuilder
If myMoneyInSrt.Length > 9 Then

End If

If myMoneyInSrt.Length = 9 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 2))   '981485145
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(2, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(4, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(6, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(7, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(8, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 8 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(1, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(3, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(5, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
dictionary.Add("HundredsValue", result.ToString)  '8 14 85 145
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(6, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(7, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 7 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(2, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
dictionary.Add("ThousandsValue", result.ToString)   '14 85 1 45
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(4, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(5, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(6, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 6 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(1, 2))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(3, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(4, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(5, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 5 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 2))

If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(2, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(3, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(4, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 4 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))

If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(1, 1))
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(2, 1))
'result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(3, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 3 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))  '1 23

If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(1, 1))
' result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(GetRootNumberWord(myNumber))
result.Append(SpaceString)
'result.Append(GetRootNumberWord(myNumber Mod 10))
result.Clear()

myNumber = Convert.ToInt32(myMoneyInSrt.Substring(2, 1))
result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 2 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))  '1 2
If myNumber > 20 Then
result.Append(GetRootNumberWord((myNumber \ 10) * 10))
result.Append(SpaceString)
result.Clear()
Else
result.Append(GetRootNumberWord(myNumber))
result.Clear()
End If

If myNumber >= 1 Then
myNumber = Convert.ToInt32(myMoneyInSrt.Substring(1, 1))
result.Append(GetRootNumberWord(myNumber))
result.Clear()
Else
End If
End If

If myMoneyInSrt.Length = 1 Then
Dim myNumber As Integer = Convert.ToInt32(myMoneyInSrt.Substring(0, 1))  '1

result.Append(GetRootNumberWord(myNumber))

End If

If myMoneyInSrt.Length = 0 Then

End If

Return dictionary
End Function
End Class``````

Finally, you call this Class where you want to use it to set Excel Cell Value.

``````Dim dictionary As New Dictionary(Of String, String)
dictionary = NumberInWord.GetSourcesNumber(Round((YourNumber), 0))
Excel.Cells((10), 2) = dictionary.Item("CroresValue")
Excel.Cells((10), 4) = dictionary.Item("LacsValue")
Excel.Cells((10), 6) = dictionary.Item("ThousandsValue")
Excel.Cells((10), 9) = dictionary.Item("HundredsValue")
Excel.Cells((10), 12) = dictionary.Item("TensValue")
Excel.Cells((10), 15) = dictionary.Item("UnitsValue")
//Where Excel.Cells((10), 15) is Your Excel Column(10) And Row(15) No where you set converted Value.``````