I did an experiment.
- I made a Excel file
Book1.xlsx with a sheet with 203 columns > 100.
- I opend the file as an entry in the KS’s Data Files. I was warned by a dialog:
- I made a test case scrit:
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
TestData testData = findTestData("Book1")
WebUI.comment("testData.getColumnNumbers()=${testData.getColumnNumbers()}")
WebUI.comment("testData.getColumnNames()=${testData.getColumnNames()}")
List<List<Object>> allRows = testData.getAllData()
WebUI.comment("allRows=${allRows}")
- I ran the test case, and got the following output:
2020-05-08 23:27:05.457 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/showAllColumns
2020-05-08 23:27:05.783 DEBUG testcase.showAllColumns - 1: testData = findTestData("Book1")
2020-05-08 23:27:06.454 DEBUG testcase.showAllColumns - 2: comment(testData.getColumnNumbers()=$testData.getColumnNumbers())
2020-05-08 23:27:06.557 INFO c.k.k.c.keyword.builtin.CommentKeyword - testData.getColumnNumbers()=203
2020-05-08 23:27:06.558 DEBUG testcase.showAllColumns - 3: comment(testData.getColumnNames()=$testData.getColumnNames())
2020-05-08 23:27:06.592 INFO c.k.k.c.keyword.builtin.CommentKeyword - testData.getColumnNames()=[1列, 2列, 3列, 4列, 5列, 6列, 7列, 8列, 9列, 10列, 11列, 12列, 13列, 14列, 15列, 16列, 17列, 18列, 19列, 20列, 21列, 22列, 23列, 24列, 25列, 26列, 27列, 28列, 29列, 30列, 31列, 32列, 33列, 34列, 35列, 36列, 37列, 38列, 39列, 40列, 41列, 42列, 43列, 44列, 45列, 46列, 47列, 48列, 49列, 50列, 51列, 52列, 53列, 54列, 55列, 56列, 57列, 58列, 59列, 60列, 61列, 62列, 63列, 64列, 65列, 66列, 67列, 68列, 69列, 70列, 71列, 72列, 73列, 74列, 75列, 76列, 77列, 78列, 79列, 80列, 81列, 82列, 83列, 84列, 85列, 86列, 87列, 88列, 89列, 90列, 91列, 92列, 93列, 94列, 95列, 96列, 97列, 98列, 99列, 100列, 101列, 102列, 103列, 104列, 105列, 106列, 107列, 108列, 109列, 110列, 111列, 112列, 113列, 114列, 115列, 116列, 117列, 118列, 119列, 120列, 121列, 122列, 123列, 124列, 125列, 126列, 127列, 128列, 129列, 130列, 131列, 132列, 133列, 134列, 135列, 136列, 137列, 138列, 139列, 140列, 141列, 142列, 143列, 144列, 145列, 146列, 147列, 148列, 149列, 150列, 151列, 152列, 153列, 154列, 155列, 156列, 157列, 158列, 159列, 160列, 161列, 162列, 163列, 164列, 165列, 166列, 167列, 168列, 169列, 170列, 171列, 172列, 173列, 174列, 175列, 176列, 177列, 178列, 179列, 180列, 181列, 182列, 183列, 184列, 185列, 186列, 187列, 188列, 189列, 190列, 191列, 192列, 193列, 194列, 195列, 196列, 197列, 198列, 199列, 200列, 201列, 202列, 203列]
2020-05-08 23:27:06.595 DEBUG testcase.showAllColumns - 4: allRows = testData.getAllData()
2020-05-08 23:27:06.603 DEBUG testcase.showAllColumns - 5: comment(allRows=$allRows)
2020-05-08 23:27:06.609 INFO c.k.k.c.keyword.builtin.CommentKeyword - allRows=[[データ1, データ2, データ3, データ4, データ5, データ6, データ7, データ8, データ9, データ10, データ11, データ12, データ13, データ14, データ15, データ16, データ17, データ18, データ19, データ20, データ21, データ22, データ23, データ24, データ25, データ26, データ27, データ28, データ29, データ30, データ31, データ32, データ33, データ34, データ35, データ36, データ37, データ38, データ39, データ40, データ41, データ42, データ43, データ44, データ45, データ46, データ47, データ48, データ49, データ50, データ51, データ52, データ53, データ54, データ55, データ56, データ57, データ58, データ59, データ60, データ61, データ62, データ63, データ64, データ65, データ66, データ67, データ68, データ69, データ70, データ71, データ72, データ73, データ74, データ75, データ76, データ77, データ78, データ79, データ80, データ81, データ82, データ83, データ84, データ85, データ86, データ87, データ88, データ89, データ90, データ91, データ92, データ93, データ94, データ95, データ96, データ97, データ98, データ99, データ100, データ101, データ102, データ103, データ104, データ105, データ106, データ107, データ108, データ109, データ110, データ111, データ112, データ113, データ114, データ115, データ116, データ117, データ118, データ119, データ120, データ121, データ122, データ123, データ124, データ125, データ126, データ127, データ128, データ129, データ130, データ131, データ132, データ133, データ134, データ135, データ136, データ137, データ138, データ139, データ140, データ141, データ142, データ143, データ144, データ145, データ146, データ147, データ148, データ149, データ150, データ151, データ152, データ153, データ154, データ155, データ156, データ157, データ158, データ159, データ160, データ161, データ162, データ163, データ164, データ165, データ166, データ167, データ168, データ169, データ170, データ171, データ172, データ173, データ174, データ175, データ176, データ177, データ178, データ179, データ180, データ181, データ182, データ183, データ184, データ185, データ186, データ187, データ188, データ189, データ190, データ191, データ192, データ193, データ194, データ195, データ196, データ197, データ198, データ199, データ200, データ201, データ202, データ203]]
2020-05-08 23:27:06.616 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/showAllColumns
Please find that the script could read all of 203 columns successfully.
maximum 100 columns — this is not really a restriction. The dialog is just an warning. You can safely ignore it.
We do not EDIT the data in the Data File GUI of Katalon Studio. Therefore we do not need all 203 columns displayed. At least I would not mind it if it does not show 101st and over columns because I can view and edit it using MS Excel.
On the other hand, Katalon Studio programmer possibly had to to choose some figure and set it as the maximum number of columns to display in the GUI. He could not make it large enough (e.g.,99999) due to memory resource/performance reasons. He/she just chose 100. I regret that the sentence “because it’s not a good practice to have so many columns” sounds arguable.
It would be an idea to request Katalon Team to offer opt-off “do not show that opinionated warning dialog of 100 columns”. Or simply remove it. If the sheet has 101 columns and more, and the GUI is not able to displays them, GUI should show a discreet annotation somewhere in the page in small font saying “columns over 101 exist but not displayed here”
@ThanhTo
Any comment?