php poi excel,Excel表单的读取与处理 PHPExcel与Apache POI

Apache POI的具体使用方法

下载文件目录如下:

15d3b21667fcc183b4dba26ba08ff50d.png

搭建环境:在目标工程右键选择Properties,选择如下对话框中的Java Build Path中的Libraries,再选择Add External JARs,添加刚才目录下的Poi-version-date.jar包即可。

9de8bfa06835f8f5f60fc1f5b00b6fd2.png

总体思想:Apache POI提供了WorkBook类,Sheet类,Row类,Cell类。从输入流中依次读入WorkBook,从而获取Sheet,Row,从而获取Cell。可以读取Cell中的数据,或者修改此Cell内的数据。

但是要注意的是,这时仅仅是修改了从输入流中读取的实例化的WorkBook类,若想输出该变化,最终要将WorkBook通过输出流来改变具体的文件。

同时,Apache POI对空单元格的处理是,对于该cell的指针置空(null),故若想修改空的单元格,最好对目标Excel文件预处理,加入NULL关键字,即可获取其指针再对其值修改。

Apache POI处理示例:

import java.io.FileInputStream;

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFRichTextString;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

public class test {

private static Workbook wb;

private static int SheetNum = 0; //读取的表格号

private static int CellNum = 0; //读取第几个cell

public static void main(String[] args) throws Exception {

String ifile = "IN.xls"; //输入文件的地址

String ofile = "OUT.xls"; //输出文件的地址

FileInputStream fis = new FileInputStream(ifile);

FileOutputStream fos = new FileOutputStream(ofile);

wb = new HSSFWorkbook(fis); //从输入流实例化workbook

if (wb != null) {

Sheet sheet = wb.getSheetAt(SheetNum); //打开workbook中SheetNum的表格

int totalRows = sheet.getPhysicalNumberOfRows(); //获取总行数

for (int r = 1; r < totalRows; r++) { //遍历每一行的数据

Row row = sheet.getRow(r);//获取第r行的row对象

if (row == null) continue;

Cell cell = row.getCell(CellNum);//获取第CellNum的数据,同时可以利用 row.getPhysicalNumberOfCells() 来遍历列

String old = cell.getStringCellValue();//获取原cell内容

if("NULL".equals(old)) old = ""; //若为标记单元格,清空

old += "After modify";

cell.setCellValue(new HSSFRichTextString(old));//设置修改后的内容

wb.write(fos); //将workbook写入输出流

System.out.println("Done");

fos.close(); //关闭输入输出流

fis.close();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值