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

POI Excel 08

@author YHC

读取Excel和重写Excel

click me!!看创建Excel代码!!!!!<<<<=====创建测试的Excel是POI Excel 02[工作薄中不同类型的单元格]

 

[java]
//初始化输入流  
        InputStream inp = new FileInputStream("D:/workbook.xls"); 
        //创建读取对应的文件生成对象  
        Workbook wb = WorkbookFactory.create(inp); 
        //得到第0个工作薄  
        Sheet sheet = wb.getSheetAt(0); 
        //得到第3行 小标从0开始,所以是2  
        Row row = sheet.getRow(2); 
        //得到第三行第4个单元格 4D 小标从0开始所以是三  
        Cell cell = row.getCell(3); 
        //查看该单元格是否定义,如果没有定义返回NULL  
        //,否则返回一个逻辑上的单元格,如果没有则创建  
        //??为什么需要先判断为空,因为如果该单元格已经  
        //存在而且已经定义,如果你在创建,原来的单元格  
        //将会被你重新创建的单元格覆盖,这样做可以节约  
        //你的空间,因为没有重新创建对象  
        if (cell == null) 
            cell = row.createCell(3); 
        //设置单元格的类型是String字符串文本类型  
        cell.setCellType(Cell.CELL_TYPE_STRING); 
        //设定值  
        cell.setCellValue("a test"); 
 
        //重新写如文件  
        FileOutputStream fileOut = new FileOutputStream("D:/workbook.xls"); 
        wb.write(fileOut); 
        fileOut.close(); 

//初始化输入流
  InputStream inp = new FileInputStream("D:/workbook.xls");
  //创建读取对应的文件生成对象
     Workbook wb = WorkbookFactory.create(inp);
     //得到第0个工作薄
     Sheet sheet = wb.getSheetAt(0);
     //得到第3行 小标从0开始,所以是2
     Row row = sheet.getRow(2);
     //得到第三行第4个单元格 4D 小标从0开始所以是三
     Cell cell = row.getCell(3);
     //查看该单元格是否定义,如果没有定义返回NULL
     //,否则返回一个逻辑上的单元格,如果没有则创建
     //??为什么需要先判断为空,因为如果该单元格已经
     //存在而且已经定义,如果你在创建,原来的单元格
     //将会被你重新创建的单元格覆盖,这样做可以节约
     //你的空间,因为没有重新创建对象
     if (cell == null)
         cell = row.createCell(3);
     //设置单元格的类型是String字符串文本类型
     cell.setCellType(Cell.CELL_TYPE_STRING);
     //设定值
     cell.setCellValue("a test");

     //重新写如文件
     FileOutputStream fileOut = new FileOutputStream("D:/workbook.xls");
     wb.write(fileOut);
     fileOut.close();运行后的效果图:

 \


单元格中使用\n 换行符:


[java] 
      //创建Excel  
Workbook wb = new HSSFWorkbook();   //or new XSSFWorkbook();  
//创建工作薄  
   Sheet sheet = wb.createSheet(); 
      //创建行  
   Row row = sheet.createRow(2); 
   //创建单元格  
   Cell cell = row.createCell(2); 
   //设置单元格中的值 使用有\n换行符  
   cell.setCellValue("Use \n with word wrap on to create a new line"); 
 
   //如果你需要使用换行符,你需要设置  
   //单元格的样式wrap=true,代码如下:  
   CellStyle cs = wb.createCellStyle(); 
   cs.setWrapText(true); 
   cell.setCellStyle(cs); 
 
   //增加行的高度以适应2行文本的高度,设置高度单位(像素)  
   row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints())); 
 
   //调整该列宽度适应内容   
   sheet.autoSizeColumn((short)2); 
      //写入文件  
   FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx"); 
   wb.write(fileOut); 
   fileOut.close(); 

          //创建Excel
  Workbook wb = new HSSFWorkbook();   //or new XSSFWorkbook();
  //创建工作薄
     Sheet sheet = wb.createSheet();
        //创建行
     Row row = sheet.createRow(2);
     //创建单元格
     Cell cell = row.createCell(2);
     //设置单元格中的值 使用有\n换行符
     cell.setCellValue("Use \n with word wrap on to create a new line");

     //如果你需要使用换行符,你需要设置
     //单元格的样式wrap=true,代码如下:
     CellStyle cs = wb.createCellStyle();
     cs.setWrapText(true);
     cell.setCellStyle(cs);

     //增加行的高度以适应2行文本的高度,设置高度单位(像素)
     row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));

     //调整该列宽度适应内容
     sheet.autoSizeColumn((short)2);
        //写入文件
     FileOutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx");
     wb.write(fileOut);
     fileOut.close();运行后的效果图:

 \

需要jar包:

 \
作者:yhc13429826359
 


 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,