Taking a long time to generate dynamic Table

I’m trying to populate data from an excel sheet or a .csv file into a Vaadin table with the same number of columns and rows. Data gets added to the Vaadin table if the data is less in the sheet. But if the excel sheet contains large amount of data, like (20*1200)[20 rows and each row has 1200 columns]
cells of data , the loading indicator is going on and on, but data is not getting inserted into the Vaadin table.

First, I added the column names obtained dynamically, in the following way
for (int i = 0; i < listOfDataColumnNames.size(); i++){
String strColumnName = listOfDataColumnNames.get(i);
tableForDataTemplateFields.addContainerProperty(strColumnName, String.class, “”);

Then, tried to add row data from an arraylist “dataListToBeDisplayedInTheTable”
for (int i = 0; i< dataListToBeDisplayedInTheTable.size(); i++){

HashMap<String,String> hashMap = dataListToBeDisplayedInTheTable.get(i);

String[] strItems = new String[listOfDataColumnNames.size()]

for (int j = 0; j < listOfDataColumnNames.size(); j++){
String strFieldName = listOfDataColumnNames.get(j);
String strFieldValue = hashMap.get(strFieldName);
if (null == strFieldValue){
= “”;
} else {
= strFieldValue;
tableForDataTemplateFields.addItem(strItems, new Integer(i+1));

Is there a better way to insert large amounts of data into the table within short time.

Have a look at
. 1200 columns are a bit too much…and with a bit I mean way too much for the WebApp to render quickly.