POI方式读写Excel

首先需要从http://www.apache.org/最下方选择poi然后选择download下载

其次打开eclipse ,选择项目右键Bulid path/configure 进入窗口选择Libraries 选择 Add External JARs 导入刚刚下载的所有jar,(根目录和子文件里面都有jar)总共导入10+个jar


HSSFWorkBook:操作2003版本以前的(包括2003版本),扩展名.xls,该类在org.apache.poi:poi中

XSSFWorkBook:操作2007版本以后的(包括2007版本),拓展名.xlsx,该类在org.apache.poi:poi-ooxml中

SXSSFWorkBook:对于海量的数据进行操作

对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。

org.apache.poi.openxml4j.exceptions.InvalidOperationException

org.apache.poi.poifs.filesystem.OfficeXmlFileException



write:

package com;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


/*
 * poi
 */
public class write {
public static void main(String[] args) 
  {
     try {
// 创建工作薄
 XSSFWorkbook workbook = new XSSFWorkbook();
 // 创建工作表
 XSSFSheet sheet = workbook.createSheet("sheet1");


 for (int row = 0; row < 10; row++)
 {
    XSSFRow rows = sheet.createRow(row);
    for (int col = 0; col < 10; col++)
    {
       // 向工作表中添加数据
       rows.createCell(col).setCellValue("data" + row + col);
    }
 }


 File xlsFile = new File("POI.xlsx");
 FileOutputStream xlsStream = new FileOutputStream(xlsFile);
 workbook.write(xlsStream);
 xlsStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
     
  }

}

read:

package com;


import java.io.File;
import java.io.IOException;


import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;


public class read {
public static void main(String[] args) throws IOException,
    InvalidFormatException
{
File xlsFile = new File("POI.xlsx");
// 获得工作簿
Workbook workbook = WorkbookFactory.create(xlsFile);
// 获得工作表个数
int sheetCount = workbook.getNumberOfSheets();
// 遍历工作表
for (int i = 0; i < sheetCount; i++)
{
   Sheet sheet = workbook.getSheetAt(i);
   // 获得行数
   int rows = sheet.getLastRowNum() + 1;
   // 获得列数,先获得一行,在得到改行列数
   Row tmp = sheet.getRow(0);
   if (tmp == null)
   {
      continue;
   }
   int cols = tmp.getPhysicalNumberOfCells();
   // 读取数据
   for (int row = 0; row < rows; row++)
   {
      Row r = sheet.getRow(row);
      for (int col = 0; col < cols; col++)
      {
         System.out.printf("%10s", r.getCell(col).getStringCellValue());
      }
      System.out.println();
   }
}
}
}



猜你喜欢

转载自blog.csdn.net/sivanl/article/details/80067498