B4J Question XLUtils -Error

StarinschiAndrei

Active Member
Licensed User
Longtime User
Hello everyone,
Based on Erel's exemple i created a new sheet with some random columns , below you can see the error , what is wrong in my code ?
WARNING: package com.sun.javafx.embed.swing.oldimpl not in javafx.swing
Waiting for debugger to connect...
Program started.
*** Sheet2 ***
Number of rows: 26
Is rectangle region: true
A1 -> E26
Content:
TEST 1, TEST 2, TEST 3, TEST 4, TEST 5
COL1 , COL2, COL3, COL4, COL5
COL2, COL3, COL4, COL5, COL6
COL3, COL4, COL5, COL6, COL7
COL4, COL5, COL6, COL7, COL8
COL5, COL6, COL7, COL8, COL9
COL6, COL7, COL8, COL9, COL10
COL7, COL8, COL9, COL10, COL11
COL8, COL9, COL10, COL11, COL12
COL9, COL10, COL11, COL12, COL13
COL10, COL11, COL12, COL13, COL14
COL11, COL12, COL13, COL14, COL15
COL12, COL13, COL14, COL15, COL16
COL13, COL14, COL15, COL16, COL17
COL14, COL15, COL16, COL17, COL18
COL15, COL16, COL17, COL18, COL19
COL16, COL17, COL18, COL19, COL20
COL17, COL18, COL19, COL20, COL21
COL18, COL19, COL20, COL21, COL22
COL19, COL20, COL21, COL22, COL23
COL20, COL21, COL22, COL23, COL24
COL21, COL22, COL23, COL24, COL25
COL22, COL23, COL24, COL25, COL26
COL23, COL24, COL25, COL26, COL27
COL24, COL25, COL26, COL27, COL28
COL25, COL26, COL27, COL28, COL29
Error occurred on line: 86 (XLReaderResult)
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at anywheresoftware.b4a.keywords.Common.CallSubDebug2(Common.java:486)
at b4j.example.b4xpagesmanager._createpageifneeded(b4xpagesmanager.java:875)
at b4j.example.b4xpagesmanager._showpage(b4xpagesmanager.java:354)
at b4j.example.b4xpagesmanager._addpage(b4xpagesmanager.java:175)
at b4j.example.b4xpagesmanager._addpageandcreate(b4xpagesmanager.java:189)
at b4j.example.b4xpagesmanager._initialize(b4xpagesmanager.java:125)
at b4j.example.main._appstart(main.java:85)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at b4j.example.main.start(main.java:38)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:134)
at anywheresoftware.b4a.debug.Debug.CallSubNew2(Debug.java:81)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
... 28 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:115)
... 30 more
Caused by: java.lang.NumberFormatException: For input string: "COL8"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:735)
at anywheresoftware.b4a.BA.ObjectToNumber(BA.java:434)
at b4j.example.b4xmainpage._b4xpage_created(b4xmainpage.java:109)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
... 32 more

Thank you
B4X:
Dim result As XLReaderResult = XL.Reader.ReadSheetByName(File.DirAssets, "Countries of the world.xlsx", "Sheet2") 'complete sheet
    result.LogResult(True)

    B4XTable1.AddColumn(result.Get(XL.AddressName("A1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("B1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("C1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("D1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("E1")), B4XTable1.COLUMN_TYPE_TEXT)
 

Attachments

  • Countries of the world.xlsx
    45.2 KB · Views: 40

StarinschiAndrei

Active Member
Licensed User
Longtime User
Here is the code. i found the problem
Dim Area As Int and Dim Population As Int:confused:
Thank you.
B4X:
Private Sub B4XPage_Created (Root1 As B4XView)
    Root = Root1
    Root.LoadLayout("MainPage")
    XL.Initialize
    Dim result As XLReaderResult = XL.Reader.ReadSheetByName(File.DirAssets, "Countries of the world.xlsx", "Sheet2") 'complete sheet
    result.LogResult(True)

    B4XTable1.AddColumn(result.Get(XL.AddressName("A1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("B1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("C1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("D1")), B4XTable1.COLUMN_TYPE_TEXT)
    B4XTable1.AddColumn(result.Get(XL.AddressName("E1")), B4XTable1.COLUMN_TYPE_TEXT)
    Dim TableData As List
    TableData.Initialize
    For Row1Based = 6 To result.BottomRight.Row0Based + 1
        Dim Country As String = result.Get(XL.AddressOne("A", Row1Based))
        If Country = "" Then Exit 'Not really needed in this case, but it is good practice.
        Dim Population As Int = result.Get(XL.AddressOne("D", Row1Based))
        Dim Area As Int = result.Get(XL.AddressOne("E", Row1Based))
        TableData.Add(Array(Country, Population, Area))
    Next
    B4XTable1.SetData(TableData)
End Sub
 
Upvote 1
Top