2013-03-27 46 views
0

的Emp ID名称薪水使用HSSF读取Excel文件

1.0约翰2000000.0

2.0院长4200000.0

3.0 SAM 2800000.0

4.0 CASS 600000.0

我已经创建了这个代码:

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

}

用于使用POI库从该excel文件中读取内容。我的编辑器是Eclipse。但是,当我跑我把这个程序:在线程异常“主要” java.lang.Error的:未解决的问题编译: 方法SAMPLE2()是未定义的类型SAMPLE2

at sample2.main(sample2.java:17) 

任何帮助吗? 提前感谢您!

回答

1
public class sample2 
{ 
    public static void main(String[] args) { 
    new sample2().sample2(); // This is wrong too. 
    } 
} 

之后的所有代码都是毫无意义的。你的课程基本上以第二个}结束。

您可能想要移动main()方法中的所有内容。

此外,main()方法new sample2().sample2();中的这段代码是错误的。

它应该是这样的

sample2 s = new sample2(); 
0

删除最后一个大括号中的代码:

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

} }

然后创造一个名为test2的方法()这样的:

public void sample2(){ //Put your code here } 
+0

我做了更改,我把这个:异常在线程“主”java.lang.Error:未解决的编译问题: \t at sample2.main(sample2.java:16)任何想法? – userefoikon 2013-03-27 08:34:44

+0

你可以粘贴你执行的代码吗? – javadev 2013-03-27 14:27:16