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

import org.apache.commons.io.FileUtils;
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.junit.Test;

public class poi_write {

    @Test
    public void testWrite() {
        final String [] str = {"id", "姓名", "性别"};
        //创建Excel工作薄
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建Excel工作表
        HSSFSheet sheet = workbook.createSheet();
        //创建第一行
        HSSFRow row = sheet.createRow(0);
        //定义单元格
        HSSFCell cell = null;

        //添加表头,为第一行填充内容
        for (int i = 0; i < str.length; i++) {
            cell = row.createCell(i);
            cell.setCellValue(str[i]);
        }

        //追加数据,创建十行,为每行添加数据,每行三个单元格,下表依次0,1,2
        for (int i = 1; i <= 10; i++) {
            HSSFRow rows = sheet.createRow(i);
            HSSFCell cell_id = rows.createCell(0);
            cell_id.setCellValue(i+"");
            HSSFCell cell_name = rows.createCell(1);
            cell_name.setCellValue("name:"+i);
            HSSFCell cell_sex = rows.createCell(2);
            cell_sex.setCellValue("男");
        }

        //文件保存路径
        File file = new File("E:/tmp/poi_text.xls");
        try{
            if(!file.exists()){
                file.createNewFile();
            }
            FileOutputStream fileOut = new FileOutputStream(file);//创建一个文件输出流对象
            workbook.write(fileOut);
            fileOut.close();//关闭输出流对象
        }catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("Excel文件已生成");
    }

    @Test
    public  void testRead() {
        final File file = new File("E:/tmp/poi_text.xls");
        if(file.exists()){
            try {
                //生成workbook
                HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));
               // workbook.getSheet("Sheet0");//获得指定的工作表
               // HSSFSheet sheet = workbook.getSheet("Sheet0");
                //workbook.getSheetAt(0);//默认获得第一个工作表
                HSSFSheet sheet = workbook.getSheetAt(0);

                int firstRowNum = 0;
                //获得当前sheet最后一行行号
                int lastRowNum = sheet.getLastRowNum();
                for (int i = firstRowNum; i <= lastRowNum; i++) {
                    HSSFRow row = sheet.getRow(i);
                    //获得当前行最后单元格列号
                    int lastCellNum = row.getLastCellNum();
                    for (int j = 0; j < lastCellNum; j++) {
                        HSSFCell cell = row.getCell(j);
                        String value = cell.getStringCellValue();
                        System.out.print(value+" ");
                    }
                    System.out.println("");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else{
            System.out.println("读取文件不存在");
        }
    }

}

jar包 :poi-3.8-20120326.jar

java_poi的更多相关文章

  1. Java_POI之MS-Excel2003(扩展名.xls)升级至MS-Excel2007及以上版本(扩展名.xlsx)技术过程概要

    Java_POI之MS-Excel2003(扩展名.xls)升级至MS-Excel2007及以上版本(扩展名.xlsx)技术过程概要 作者:Eric.Zhang(花名:穿越者7号) 日期:2015年1 ...

  2. JAVA_POI 操作Excel

    转自: http://rensanning.iteye.com/blog/1538591# Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API ...

随机推荐

  1. 操作符重载、继承(day08)

    二十 操作符重载 函数操作符"()" 功能:让对象当做函数来使用 注:对参数的个数.返回类型没有限制 eg: class A{...}; A a; //a.operator()(1 ...

  2. git常见问题总结

    1.每次上传文件的时候,有很多iml文件容易不小心上传上去,然后报错,所以可以把这些文件取消上传 如图所示,每次提交时,都不会显示标红文件 具体操作步骤如下:

  3. 0816关于MySQL的审计 init-connect+binlog实现用户操作追踪

    转自:http://blog.sina.com.cn/s/blog_605f5b4f01013xkv.html mysql 用init-connect+binlog实现用户操作追踪 做access 的 ...

  4. HDU 4513 manacher

    Manacher算法,相当于求回文串. 关于Manacher,转 http://blog.sina.com.cn/s/blog_70811e1a01014esn.html 现在进入正题:首先,在字符串 ...

  5. 50套html站点模板,涵盖非常多行业,各种类型html站点,各种行业html站点模板下载

    50套html站点模板,涵盖非常多行业,各种类型html站点.各种行业html站点模板下载 所以模板都在共享文件中面QQ群 139639813 ,快下载吧.

  6. Thread.suspend和println使线程死锁

    Thread.suspend和println使线程死锁 package com.stono.thread2.page39; public class MyThread extends Thread{ ...

  7. hibernate之7.one2many双向

    表结构 实体类关系 实体类源代码 Student package com.demo.model; import java.io.UnsupportedEncodingException; import ...

  8. Codeforces Round #256 (Div. 2) B

    B. Suffix Structures Bizon the Champion isn't just a bison. He also is a favorite of the "Bizon ...

  9. 学习Mockito - Mockito对Annotation的支持

    学习Mockito - Mockito对Annotation的支持 博客分类: test junit工作  Mockito支持对变量进行注解,例如将mock对象设为测试类的属性,然后通过注解的方式@M ...

  10. hdoj--1864--最大保险额(背包)

    最大报销额 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...