在disucz中使用PHPExcel,导入电子表格
发布:smiling 来源: PHP粉丝网 添加日期:2014-11-19 10:13:02 浏览: 评论:0
在做discuz二次开发的时候,有个需求是导入产品卡密积分的Excel表格,discuz采用的是php语言开发,关于Excel方面的操作,当然要借助PHPExcel项目了.
PHPExcel - OpenXML - Read, Write and Create Excel documents in PHP - Spreadsheet engine
1、下载PHPExcel项目
地址http://phpexcel.codeplex.com/
2、在source/include/中创建目录PHPExcel
在disucz中使用PHPExcel,导入电子表格.
3、在discuz源代码中引用PHPExcel.php,需要先注销discuz原有的autoload,然后再注册.
- spl_autoload_unregister(array('core', 'autoload'));
- include DISCUZ_ROOT.'./source/include/PHPExcel/PHPExcel.php';
- include DISCUZ_ROOT.'./source/include/PHPExcel/PHPExcel/IOFactory.php';
- spl_autoload_register(array('core', 'autoload'));
4、读取Excel电子表格内容,下面示例.
- $objReader = PHPExcel_IOFactory::createReader('Excel2007');
- $objReader->setReadDataOnly(true);
- $objPHPExcel = $objReader->load($filename);
- $objWorksheet = $objPHPExcel->getActiveSheet();
- $highestRow = $objWorksheet->getHighestRow();
- $highestColumn = $objWorksheet->getHighestColumn();
- $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
- $excelData = array();
- for($row = 1; $row <= $highestRow; $row++){
- $excelrow = array();
- for ($col = 0; $col < $highestColumnIndex; $col++){
- $cellValue = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
- $cellValue = trim($cellValue);
- if($col == 0 && emptyempty($cellValue)){
- break;
- }
- if($col == 6 || $col == 9){
- $cellValue=gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($cellValue));
- }
- //一般第一行为字段;如果为单元格内容为空,说明字段结束,修正实际的栏目数量
- if($row == 1 && emptyempty($cellValue)){
- $highestColumnIndex = $col;
- continue; //开源软件:phpfensi.com
- }
- $excelrow[] = $cellValue;
- }
- if(emptyempty($excelrow)){
- break;
- }
- if($row == 1){
- continue;
- }
- $excelData[] = $excelrow;
- }
- }
Tags: disucz电子表格 PHPExcel
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)