poi读写excel数据


poi读写excel数据

public class PoiDoexcel {
/*
     * HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls 
       XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx
        操作2007时要加包:dom4j-1.6.1.jar,stax-api-1.0.1.jar,xmlbeans-2.3.0.jar
     * */
@Test
   public void doexcelone2003(){
  try {
//用HSSF的usermodel读取文件很简单。首先创建一个InputStream,然后创建一个HSSFWorkbook
    InputStream inputStream=new FileInputStream("D:/开发资料/poi/test2003.xls");
    
    HSSFWorkbook workbook=new HSSFWorkbook(inputStream);
    //读取excel表的行和列
    HSSFSheet sheet1=workbook.getSheetAt(0);//获取第一个sheet表
    HSSFRow row=sheet1.getRow(1);//获取第三行 
    HSSFCell cell=row.getCell(3);//第四个单元格
   
    //上面这段代码提取出第一个工作表第三行第四单元格。利用单元格对象可以获得它的值,提取单元格
   //的值时请注意它的类型
   if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING){
    System.out.println("单元格是字符串,值是:"+cell.getStringCellValue());
   }else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
    System.out.println("单元格是数字,值是:"+cell.getColumnIndex());
   }else {
System.out.println("单元格的值不是字符串和数字,值是:"+cell.getDateCellValue());
}
    /*Excel内部以数值的形式保存日期数据的
     * 对于包含日期数据的单元格,cell.getCellType()将返回HSSFCell.CELL_TYPE_NUMERIC,不
                                           过利用工具函数HSSFDateUtil.isCellDateFormatted(cell)可以判断出单元格的值是否为日期。
     * 很多时候isCellDateFormatted函数会返回否定的结论,存在一定的误判可能
     * */
 
 
} catch (Exception e) {
e.printStackTrace();
}
   }

@Test
   public void doexcelone2007(){
  try {
     //用HSSF的usermodel读取文件很简单。首先创建一个InputStream,然后创建一个HSSFWorkbook
    InputStream inputStream=new FileInputStream("D:/开发资料/poi/test2007.xlsx");
    
    XSSFWorkbook workbook=new XSSFWorkbook(inputStream);
    //读取excel表的行和列
    XSSFSheet sheet1=workbook.getSheetAt(0);//获取第一个sheet表
    XSSFRow row=sheet1.getRow(1);//获取第三行 
    XSSFCell cell=row.getCell(3);//第四个单元格
   
    //上面这段代码提取出第一个工作表第三行第四单元格。利用单元格对象可以获得它的值,提取单元格
   //的值时请注意它的类型
   if(cell.getCellType()==XSSFCell.CELL_TYPE_STRING){
    System.out.println("单元格是字符串,值是:"+cell.getStringCellValue());
   }else if(cell.getCellType()==XSSFCell.CELL_TYPE_NUMERIC){
    System.out.println("单元格是数字,值是:"+cell.getColumnIndex());
   }else {
System.out.println("单元格的值不是字符串和数字,值是:"+cell.getDateCellValue());
}
    
} catch (Exception e) {
e.printStackTrace();
}
   }
@Test
public void dowrite2003(){
try {
HSSFWorkbook workbook=new HSSFWorkbook();

//创建工作表及其内容必须从相应的父对象出发
HSSFSheet sheet=workbook.createSheet();
HSSFRow row=sheet.createRow(0);
HSSFCell cell=row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.888);
row.createCell(2).setCellValue("写入一个字符串");
row.createCell(3).setCellValue(true);
row.createCell(4).setCellValue(new Date().toLocaleString());

//如果要设置单元格的样式,首先要创建一个样式对象
//注意,CellFormat和CellStyle对象是工作簿对象的成员,单元格对象只是引用它们
HSSFCell cell5=row.createCell(5);
HSSFCellStyle style = workbook.createCellStyle();
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)"));
//HSSFCellStyle.BIG_SPOTS 马赛克样式 HSSFCellStyle.SOLID_FOREGROUND 填充
style.setFillForegroundColor((short)15);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 


//style.setFillBackgroundColor(HSSFColor.RED.index);
//style.setFillPattern(HSSFCellStyle.BIG_SPOTS);//马赛克样式
//可以指定给多个单元格
cell5.setCellStyle(style);
cell5.setCellValue("摘要文档");
FileOutputStream fileOut=new FileOutputStream("workbook.xls");
workbook.write(fileOut);
fileOut.close();


} catch (Exception e) {
e.printStackTrace();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值