如何使用POI运行读取excel的程序

时间:2013-03-26 13:47:45

标签: java eclipse

我尝试在eclipse中运行此代码,但我得到了这个:选择不包含主类型eclipse。 有谁知道我会怎么做?我是java的新手,我需要帮助! 我尝试制作的程序是使用POI读取excel文件! :)

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 {

private void sample2(test)

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();

   }

2 个答案:

答案 0 :(得分:2)

如果没有main方法,则无法运行Java应用程序。

您需要以下内容:

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

此外,您的代码包含很多错误。你是:

  • 缺少主要方法
  • 大写错误
  • 错过了sample2方法的输入参数的类型(String test?)
  • 代码被打破了许多方面。您复制了代码以读取文件两次,以便进行错误处理等。

阅读一本关于Java的好教程将在这里有所帮助。可以找到关于Java和Excel的优秀教程here,并注意主要方法,即Java应用程序的入口。

答案 1 :(得分:0)

由于sample2方法中的标识符“test”,您的代码将无法编译。删除它并运行程序:

只需添加以下方法:

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