Ad

Transferring Data Read From Excel To Array

- 1 answer

I want to transfer this data to an array to perform mathematical operations with the data I read from excel. how can I do that?

    import java.io.IOException;
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import  jxl.read.biff.BiffException;
    import jxl.write.*;
    import jxl.write.Number;

public class SimMod {
    public static void main(String[] args) throws Exception {
        File f=new File("C:\\Users\\data.xls");
        Workbook Wb=Workbook.getWorkbook(f);
        Sheet sh=Wb.getSheet(0);
        int [] mathArray=new int[48];
        int row=sh.getRows();
        int col= sh.getColumns();
        for (int i=0;i<row;i++){
            for (int j=0;j<col;j++){
                Cell c=sh.getCell(j,i);
                System.out.print(c.getContents());
            }
            System.out.println("   ");
        }
    }
} 

Ad

Answer

Don't use a dynamic array. Use an ArrayList instead. Change int [] mathArray=new int[48] to ArrayList<Integer> mathArray = new ArrayList<>();

Then add the line mathArray.add(c.getContents()) after or before the line System.out.print(c.getContents());

Edit: If you want to have separate rows and columns, you can do this instead:

public static void main(String[] args) throws Exception {
    File f=new File("C:\\Users\\data.xls");
    Workbook Wb=Workbook.getWorkbook(f);
    Sheet sh=Wb.getSheet(0);
    ArrayList<ArrayList<Integer>> mathArray=new ArrayList<>();
    int row=sh.getRows();
    int col= sh.getColumns();
    for (int i=0;i<row;i++){
        ArrayList<Integer> colArr = new ArrayList<>();
        for (int j=0;j<col;j++){
            Cell c=sh.getCell(j,i);
            colArr.add(c.getContents());
        }
        mathArray.add(colArr);
    }
}

Now you can access the element in row i and column j with mathArray.get(i).get(j)

Ad
source: stackoverflow.com
Ad