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

最新文章

  1. 压力测试报出503错误---ASP.NET支持大并发的相关配置
  2. spring mvc 用freemarker实现/user/edit?id=${id}=${type} 的替换
  3. warning 当xcode里点运行出现treating unicode character as whites
  4. git -- 如何解决冲突
  5. bzoj3774
  6. Python网络02 Python服务器进化
  7. Date Math SimpleDateFormat 类
  8. 简单易上手的Bootstrap
  9. Java SVN管理工具的使用
  10. hdu3076—概率dp
  11. Linux乱码问题解决
  12. h5手机查看
  13. Python学习笔记【第四篇】:基本数据类型
  14. 【iCore4 双核心板_ARM】例程十五:USB_CDC实验——高速数据传输
  15. Spring Boot 添加JSP支持【转】
  16. Ubuntu --- not enough free disk space
  17. ODP.NET 之 ExecuteNoQuery 执行 Merge into 返回值
  18. 单调队列(数列中长度不超过k的子序列和的最值)
  19. python3的一些练习题
  20. request和response的复习

热门文章

  1. 为类型定义取别名、环境变量、静态库与动态库(day03)
  2. 【学习笔记】有向无环图上的DP
  3. lunix下的redis数据库操作——zset有序集合
  4. linux 7.2 下安装maven
  5. Codeforces Round #313 (Div. 2) 560D Equivalent Strings(dos)
  6. POJ 3628 Bookshelf 2 题解
  7. HDU 5412 CRB and Queries(区间第K大 树套树 按值建树)
  8. 浅析hybrid模式下地支付宝钱包和微信
  9. Xamarin Mono For Android、Monotouch 安装
  10. ListView模拟微信好友功能