using HSSF to read an excel file

userefoikon picture userefoikon · Mar 27, 2013 · Viewed 7.5k times · Source

Emp ID Name Salary

1.0 john 2000000.0

2.0 dean 4200000.0

3.0 sam 2800000.0

4.0 cass 600000.0

I have created this code:

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class sample2
 {
    public static void main(String[] args) {
    new sample2().sample2();
}
 }


FileInputStream file = new FileInputStream(new File("C:\\test.xls"));
//Get the workbook instance for XLS file 
HSSFWorkbook workbook = new HSSFWorkbook(test);

//Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);

//Get iterator to all the rows in current sheet
Iterator<Row> rowIterator = sheet.iterator();

//Get iterator to all cells of current row
Iterator<Cell> cellIterator = row.cellIterator();


try {

  FileInputStream file = new FileInputStream(new File("C:\\test.xls"));

  //Get the workbook instance for XLS file 
  HSSFWorkbook workbook = new HSSFWorkbook(file);

  //Get first sheet from the workbook
  HSSFSheet sheet = workbook.getSheetAt(0);

  //Iterate through each rows from first sheet
   Iterator<Row> rowIterator = sheet.iterator();
   while(rowIterator.hasNext()) {
     Row row = rowIterator.next();

     //For each row, iterate through each columns
    Iterator<Cell> cellIterator = row.cellIterator();
    while(cellIterator.hasNext()) {

        Cell cell = cellIterator.next();

        switch(cell.getCellType()) {
            case Cell.CELL_TYPE_BOOLEAN:
                System.out.print(cell.getBooleanCellValue() + "\t\t");
                break;
            case Cell.CELL_TYPE_NUMERIC:
                System.out.print(cell.getNumericCellValue() + "\t\t");
                break;
            case Cell.CELL_TYPE_STRING:
                System.out.print(cell.getStringCellValue() + "\t\t");
                break;
        }
    }
    System.out.println("");
   }
   file.close();
   FileOutputStream out = 
     new FileOutputStream(new File("C:\\test.xls"));
  workbook.write(out);
  out.close();

} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();

}

for reading the content from this excel file using POI library. My editor is Eclipse. But when i run the program I took this: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method sample2() is undefined for the type sample2

at sample2.main(sample2.java:17)

Any help? Thank u in advance!

Answer

RainMaker picture RainMaker · Mar 27, 2013
public class sample2
 {
    public static void main(String[] args) {
    new sample2().sample2(); // This is wrong too.
    }
 }

All your code after this is pointless. Your class has basically ended with the second }.

You might want to move all that within your main() method.

Also, this piece of code in the main() method new sample2().sample2(); is wrong.

It should be like this

sample2 s = new sample2();