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. constraint、index、view(day04)

    回顾: 1.sql99中的表连接 select 字段列表 from 左表 {[inner]|{left|right|full} [outer]} join 右表 on 关联条件; 集合操作 union ...

  2. HashMap源码分析笔记(一)

    一.结构 HashMap的结构由数组和链表组成,可以说是一个链表类型的数组: 快速定位方式:key值得hash变换作为数组索引快速找到对应数组块,之后通过hash值对比从链表中查找到匹配项. hash ...

  3. MAC 快捷键&使用技巧等

    查看端口占用:命令 lsof -i tcp:port  (port替换成端口号,比如6379)可以查看该端口被什么程序占用,并显示PID,方便KILL    

  4. Python学习笔记之类与对象

    这篇文章介绍有关 Python 类中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中类的使用技巧 1.与类和对象相关的内置方法 issubclass(class, classinfo) ...

  5. 33.bulk json格式的理解

    bulk json格式的理解 一.常规格式 按常规理解,bulk中json格式可以是以下方式 [{ "action": { }, "data": { } }] ...

  6. windows环境下用pip安装pyautogui遇到的几个问题

    1.不能直接使用win+r运行cmd并使用pip,必须点击开始->windows系统->命令提示符,右键->以管理员身份运行 2.运行pip install pyautogui后提示 ...

  7. linux 中使用iptables 防止ddocs及cc攻击配置 。

    #防止SYN攻击,轻量级预防 iptables -N syn-floodiptables -A INPUT -p tcp –syn -j syn-floodiptables -I syn-flood ...

  8. 0912MySQL 执行计划explain详解

    转自http://blog.itpub.net/29773961/viewspace-1767044/ 该博客内容是比较全的,虽然写的比较晦涩,多读几遍还是不错的 explain命令是查看查询优化器如 ...

  9. 哈哈,找到一种方式来简单模拟EXTJS中与服务器的AJAX交互啦。

    一直在测试客户端的EXTJS,但遇到服务器端就麻烦了,要建库,要写JSON,要有HTTP返回值. 今天测试了一个简单的方法,经过测试是OK了. 那,就是Python的SimpleHTTPServer模 ...

  10. code vs 3305 水果姐逛水果街Ⅱ

    3305 水果姐逛水果街Ⅱ  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 水果姐第二天心情也很不错, ...