当前位置:软件学习 > Excel >>

POI实现简单的Excel读与写

[java] 
          /*POI实现简单的Excel读与写,与jxl实现其实是差不多的!但是以前用jxl的时候,可以以一个文件为模版创建一个文件,但是在poi里面好像没有,只能创建读的Excel,或者可写且可读(但是不能以模版创建的对象来写,因为这样数据写不进文件)。反正我还没有找到,不知道你能不能这样写!写出来了告诉我一声哦! 
[java] 
下面讲一下基本的类: 
[java] 
HSSFWorkbook //工作薄   相当与Xcel文件 
[java]
HSSFSheet    //工作表    Sheet 
[java]
HSSFRow      //一行记录 
[java] 
HSSFCell     //格子*/     
[java] 
//下面写一个简单的poi实现Excel的例子: 
package com.poi;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.ResultSet;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
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 JiandanWrite {
 
 public static void main(String[] args) throws FileNotFoundException {
        readExcel();
 }
 /**
  * 如果以一个模版创建数据的话,就只有模版,没有数据 只能读取数据
  *
  */
 public static void readExcel() throws FileNotFoundException {
   //要生成的文件
   String path = "e:/单一资金信托计划要素表EXCEL模板(2003版)_test.xls";
   //以这个模版去生成文件
   String src = "e:/test/单一资金信托计划要素表EXCEL模板(2003版).xls";
   InputStream ins = new FileInputStream(src);
   OutputStream output = new FileOutputStream(path);
   HSSFWorkbook hworkBook = null;  
   HSSFSheet writableSheet =  null;
    try {
    
    POIFSFileSystem fs = new POIFSFileSystem(ins);
    //这个是只读Excel工作簿
    hworkBook = new HSSFWorkbook(fs);
    writableSheet = hworkBook.getSheetAt(1);
    // 数据也没添加进去 使用读取模版Excel文件的 对象不能写入数据
    HSSFRow row = writableSheet.createRow(5);
    HSSFCell cell = row.createCell(0);
    cell.setCellValue("我是第5行第一个!");
    System.out.println("第五行的内容:"+cell.getStringCellValue());
    /*row.createCell(0).setCellValue("111");
    row.createCell(1).setCellValue("222");
    row.createCell(2).setCellValue("333");
    row.createCell(3).setCellValue("eeeeee");
    row.createCell(4).setCellValue("123455");*/
   
    //使用读取模版Excel文件的 对象能读取数据 OK
    /*HSSFRow readRow = writableSheet.getRow(0);
    HSSFCell readCell = readRow.getCell(0);
    String  value = readCell.getStringCellValue();
    System.out.print("读取到的第一个数据:"+value);*/
    hworkBook.write(output);
    output.flush();
   }catch(Exception e){
    e.printStackTrace();
   }finally{
    try {
     if(output!=null)
     output.close();
     if(ins != null)
     ins.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
 }  www.zzzyk.com
 //直接创建Excel文件 然后往里面写入数据 OK
 public static void createExcel(String[] args) throws FileNotFoundException {
  String path = "e:/单一资金信托计划要素表EXCEL模板(2003版)_test.xls";
  String src = "e:/test/单一资金信托计划要素表EXCEL模板(2003版).xls";
  InputStream ins = new FileInputStream(src);
  OutputStream output = new FileOutputStream(path);
   HSSFWorkbook hworkBook = null;  
   HSSFSheet writableSheet =  null;
   try {
    //Excel 可读可写工作簿
    hworkBook = new HSSFWorkbook();
   writableSheet = hworkBook.createSheet("表");
   byte i = 4;
   //添加Sheet的数据
   HSSFRow row = writableSheet.createRow(1);
   HSSFCell cell = row.createCell(0);
   cell.setCellValue("我是第5行第一个!");
   //row.createCell(0).setCellValue("111");
   row.createCell(1).setCellValue("222");
   row.createCell(2).setCellValue("333");
   row.createCell(3).setCellValue("eeeeee");
   row.createCell(4).setCellValue("123455");
   System.out.println("第五行的内容:"+cell.getStringCellValue());
   hworkBook.write(output);
  }catch(Exception e){
   e.printStackTrace();
  }finally{
   try {
    output.close();
    ins.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
}
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,