Excel表单的读取与处理 PHPExcel与Apache POI
来源:互联网 发布:淘宝5.5还包邮怎么挣钱 编辑:程序博客网 时间:2024/06/15 17:01
近日,连续遇到需要对Excel表单内容进行读取的需求。一个是在php环境下,一个是在java环境下。这里简要记录这两种环境,利用第三方提供的函数库对Excel进行处理的方法。
d0710 : Finish
==============================================================
两个平台的简要介绍以及官方地址
PHPExcel
PHPExcel - OpenXML - Read, Write and Create Excel documents in PHP - Spreadsheet engine
官方网址:http://phpexcel.codeplex.com/Apache POI
Apache POI - the Java API for Microsoft Documents
官方网址:https://poi.apache.org/
PHPExcel的具体使用方法
从官方GitHub下载得到如下文件
将其放置当前工程内,其接口为PHPExcel.php。
在目标文件中包含此入口:<?phprequire_once "./XXX/PHPExcel.php";?>
指定目标Excel文件:
<?php$filename = "./Data/XXX.xls";$objReader = PHPExcel_IOFactory::createReaderForFile($filename);$objPHPExcel = $objReader->load($filename);?>
读取具体表格中的文件
<?php $objPHPExcel->setActiveSheetIndex($SheetN);//读取第N表格 $result = $objPHPExcel->getActiveSheet()->getCell("$X$Y")->getValue();//读取这个表格中的第XY个数据?>
故完整的流程如下:
require_once "./XXX/PHPExcel.php";$filename = "./Data/XXX.xls";$objReader = PHPExcel_IOFactory::createReaderForFile($filename);$objPHPExcel = $objReader->load($filename);$objPHPExcel->setActiveSheetIndex($SheetN); $result = $objPHPExcel->getActiveSheet()->getCell("$X$Y")->getValue();
Apache POI的具体使用方法
下载文件目录如下:
搭建环境:在目标工程右键选择Properties,选择如下对话框中的Java Build Path中的Libraries,再选择Add External JARs,添加刚才目录下的Poi-version-date.jar包即可。
总体思想: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; //读取第几个cellpublic 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();}}
- Excel表单的读取与处理 PHPExcel与Apache POI
- Java实现excel的读与写(Apache POI)
- PHP与EXCEL PHPExcel
- JAVA读取与导出EXCEL(poi)
- POI操作Excel读取与导出
- Java Poi 创建与读取Excel
- 在Java中读取EXCEL文件 JExcelAPI与Apache POI两者对比
- 使用 apache poi 读取 Excel
- Apache POI实现excel读取
- Java处理Excel常用的技术POI与JXL
- POI Excel操作与数据类型处理
- JAVA读取Excel--用POI与Excel交互
- 利用apache poi读取excel的一个小例子
- java读取excel格式的内容(APACHE POI)
- JXL和POI读取Excel日期的处理
- POI读取Excel中处理纯数字的单元格
- poi读取高版本Excel表格的日期处理方式
- Java使用Apache poi 操作Excel-基本概念与使用
- python---之jinjia2
- 来!我们来玩一下陀螺仪和加速度计
- POJ 1654 Area
- java Web表示层技术
- SQL SERVER 2012实现数据的完整性
- Excel表单的读取与处理 PHPExcel与Apache POI
- Use KLEE to Test GNU Coreutils
- 从计算机视觉角度深入解读了AR
- Lucene全文检索基础
- 常用排序算法稳定性分析
- /usr/bin/ld: skipping incompatible解决方案
- ui
- CSS padding margin border属性详解
- C++中临时对象及返回值优化