1 java中能通过poi来读和写xls文件。首先需要有poi的jar。是:poi2.jar和poi-3.1-FINAL-20080629.jar。HSSF是用来的去xls格式的文件的。
2 首先是写xls文件。通过poi来写xls文件,有一个顺序,是HSSFWorkbook,然后是HSSFSheet,然后是HSSFRow,最后是HSSFCell
如:public void writerXls(String filename){
HSSFWorkbook hssfWorkbook=new HSSFWorkbook();--HSSFWorkbook
HSSFSheet sheet=hssfWorkbook.createSheet("first_sheet");--HSSFSheet
for(int i=0;i<10;i++){
HSSFRow row=sheet.createRow(i);--HSSFRow
for(int j=0;j<10;j++){
short k=(short) j;
HSSFCell cell=row.createCell(k);--HSSFCell
cell.setCellValue("("+i+","+j+")");
}
}
try {
FileOutputStream fileOutputStream=new FileOutputStream(new File(filename));
hssfWorkbook.write(fileOutputStream);--最后将内容写入到xls文件中。。。
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("文件没有找到。。。。");
//e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("将内容写入到xls中,发生错误。。。。。");
//e.printStackTrace();
}
}
3 其次是读取xls文件。通过poi来读取xls文件时,是先读取HSSFWorkbook,然后通过getSheetAt得到HSSFSheet,然后通过rowInterator得到HSSFRow,最后通过cellIterator得到HSSFCell,
在得到HSSFSheet后,可以通过rowInterator得到HSSFRow,
得到HSSFRow后,可以通过cellInterator得到HSSFCell
如:public void readXls(String filename){
try {
FileInputStream fileInputStream=new FileInputStream(new File(filename));
HSSFWorkbook hssfWorkbook=new HSSFWorkbook(fileInputStream);
HSSFSheet sheet=hssfWorkbook.getSheetAt(0);--得到HSSFSheet
System.out.println("sheet name is :"+hssfWorkbook.getSheetName(0));
Iterator iterator_row=sheet.rowIterator();
int i=0;
while(iterator_row.hasNext()){
HSSFRow row=(HSSFRow) iterator_row.next();--通过迭代器得到HSSFRow
System.out.println("第"+i+"行");
i=i+1;
Iterator iterator_cell=row.cellIterator();
while(iterator_cell.hasNext()){
HSSFCell cell=(HSSFCell)iterator_cell.next();--通过迭代器得到HSSFCell
String cell_value=cell.getStringCellValue();
System.out.print(""+cell_value+",");
}
System.out.println();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("文件没有找到。。。");
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("读取xls文件出错。。。");
}
}
2 首先是写xls文件。通过poi来写xls文件,有一个顺序,是HSSFWorkbook,然后是HSSFSheet,然后是HSSFRow,最后是HSSFCell
如:public void writerXls(String filename){
HSSFWorkbook hssfWorkbook=new HSSFWorkbook();--HSSFWorkbook
HSSFSheet sheet=hssfWorkbook.createSheet("first_sheet");--HSSFSheet
for(int i=0;i<10;i++){
HSSFRow row=sheet.createRow(i);--HSSFRow
for(int j=0;j<10;j++){
short k=(short) j;
HSSFCell cell=row.createCell(k);--HSSFCell
cell.setCellValue("("+i+","+j+")");
}
}
try {
FileOutputStream fileOutputStream=new FileOutputStream(new File(filename));
hssfWorkbook.write(fileOutputStream);--最后将内容写入到xls文件中。。。
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("文件没有找到。。。。");
//e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("将内容写入到xls中,发生错误。。。。。");
//e.printStackTrace();
}
}
3 其次是读取xls文件。通过poi来读取xls文件时,是先读取HSSFWorkbook,然后通过getSheetAt得到HSSFSheet,然后通过rowInterator得到HSSFRow,最后通过cellIterator得到HSSFCell,
在得到HSSFSheet后,可以通过rowInterator得到HSSFRow,
得到HSSFRow后,可以通过cellInterator得到HSSFCell
如:public void readXls(String filename){
try {
FileInputStream fileInputStream=new FileInputStream(new File(filename));
HSSFWorkbook hssfWorkbook=new HSSFWorkbook(fileInputStream);
HSSFSheet sheet=hssfWorkbook.getSheetAt(0);--得到HSSFSheet
System.out.println("sheet name is :"+hssfWorkbook.getSheetName(0));
Iterator iterator_row=sheet.rowIterator();
int i=0;
while(iterator_row.hasNext()){
HSSFRow row=(HSSFRow) iterator_row.next();--通过迭代器得到HSSFRow
System.out.println("第"+i+"行");
i=i+1;
Iterator iterator_cell=row.cellIterator();
while(iterator_cell.hasNext()){
HSSFCell cell=(HSSFCell)iterator_cell.next();--通过迭代器得到HSSFCell
String cell_value=cell.getStringCellValue();
System.out.print(""+cell_value+",");
}
System.out.println();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("文件没有找到。。。");
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("读取xls文件出错。。。");
}
}