PHPEXCEL 使用小记
2013-01-06 00:00
609 查看
首先是使用PHP Reader 读取Excle内容:
注:使用PHP 读取excel文件内容,一般都是处理整理好格式的csv或者excel,也可以读取xml文件
PHPExcel生成Exceel
注:上面的php生成excel的方式是直接使用A标签形式的,如果使用ajax,可以不使用header,直接echo $path,前台window.location.href=返回来的path就可以了。
require("http://www.jb51.net/PHPExcel/Classes/PHPExcel.php"); $file = "D:\\datas.xlsx"; if(!file_exists($file)){ die("no file found in {$file}"); } $datasReader = PHPExcel_IOFactory::load($file); $sheets = $datasReader->getAllSheets(); //如果有多个工作簿 $countSheets = count($sheets); $sheetsinfo = array(); $sheetData = array(); if($countSheets==1){ $sheet = $sheets[0]; $sheetsinfo["rows"] = $sheet->getHighestRow(); $sheetsinfo["column"] = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); for($row=1;$row<=$sheetsinfo["rows"];$row++){ for($column=0;$column<$sheetsinfo["column"];$column++){ $sheetData[$column][$row] = $sheet->getCellByColumnAndRow($column, $row)->getValue(); } } }else{ foreach ($sheets as $key => $sheet) { $sheetsinfo[$key]["rows"] = $sheet->getHighestRow(); $sheetsinfo[$key]["column"] = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); for($row=1;$row<=$sheetsinfo[$key]["rows"];$row++){ for($column=0;$column<$sheetsinfo[$key]["column"];$column++){ $sheetData[$key][$column][$row] = $sheet->getCellByColumnAndRow($column, $row)->getValue(); } } } } echo "<pre>"; print_r($sheetData); echo "</pre>";
注:使用PHP 读取excel文件内容,一般都是处理整理好格式的csv或者excel,也可以读取xml文件
PHPExcel生成Exceel
$sql = sprintf("select * from table where op_id=%d", intval($this->params['id'])); $query = $this->_db->query($sql); require_once './PHPExcel_1.7.4/Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15); $objPHPExcel->getActiveSheet()->setCellValue('A1', "{$this->_packInfos['o_id']}"); $objPHPExcel->getActiveSheet()->setCellValue('B1', "Volume weight (kg)"); $objPHPExcel->getActiveSheet()->setCellValue('D1', "Actual weight (kg)"); $objPHPExcel->getActiveSheet()->setCellValue('A2', "Box No."); $objPHPExcel->getActiveSheet()->setCellValue('B2', "Products"); $objPHPExcel->getActiveSheet()->setCellValue('C2', "Shipping Box"); $objPHPExcel->getActiveSheet()->setCellValue('D2', "System"); $objPHPExcel->getActiveSheet()->setCellValue('E2', "Input"); $objActSheet = $objPHPExcel->getActiveSheet(); $objActSheet->mergeCells("B1:C1"); $objActSheet->mergeCells("D1:E1"); $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('A2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $objPHPExcel->getActiveSheet()->getStyle('B2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('C2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('D2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle('E2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); if($this->_db->num_rows($query)>0) { $i=3; while ($row = $this->_db->fetch_assoc($query)) { $objPHPExcel->getActiveSheet()->setCellValue('A'.($i),"BOX ".$row['box_num']); $objPHPExcel->getActiveSheet()->setCellValue('B'.($i),sprintf("%.2f",$row['volume_weight'])); $objPHPExcel->getActiveSheet()->setCellValue('C'.($i),sprintf("%.2f",$row['box_weight'])); $objPHPExcel->getActiveSheet()->setCellValue('D'.($i),sprintf("%.2f",$row['system_weight'])); $objPHPExcel->getActiveSheet()->setCellValue('E'.($i),sprintf("%.2f",$row['real_weight'])); $objPHPExcel->getActiveSheet()->getStyle('A'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $objPHPExcel->getActiveSheet()->getStyle('B'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle('C'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle('D'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle('E'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $i++; } } $fileName="exportBox.xls"; $filePath = dirname(dirname("__FILE__"))."/template/".$fileName; $path = "./template/".$fileName; $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); if(file_exists($path)){ chmod($path, 0777); unlink($path); $objWriter->save($path); header('application/vnd.ms-excel'); header('Content-Disposition: attachment;filename=weight-'.$this->_packInfos["o_id"].".xlsx"); readfile($filePath); die(); } else { $objWriter->save($path); header('application/vnd.ms-excel'); header('Content-Disposition: attachment;filename=weight-'.$this->_packInfos["o_id"].".xlsx"); readfile($filePath); die(); }
注:上面的php生成excel的方式是直接使用A标签形式的,如果使用ajax,可以不使用header,直接echo $path,前台window.location.href=返回来的path就可以了。
相关文章推荐
- PHPExcel使用说明
- PHPEXCEL使用实例
- tp5 Composer安装与加载phpexcel插件与使用
- 解决在IE下使用PHPExcel导出时的文件名中文乱码问题
- 使用phpexcel解析Excel数据表并存储到数据库中全过程_PHP_thinkphp_cmf
- 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册
- 使用php-excel-reader读取excel文件
- PHPEXCEL使用实例
- 关于phpword使用的小记
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方-------缺点,必须使用table tr td
- phpexcel使用
- PHPExcel 使用笔记
- 使用phpexcel读写xls文件
- PHPExcel使用心得,php导出excel
- 使用phpexcelreader插件 结合mysql 与 导入Excel文件(.xls)
- excel文件怎么使用php进行处理
- ThinkPHP使用PHPExcel出现:Class 'Admin\Action\PHPExcel_IOFactory' not found
- 使用 PHPExcel 读取\修改 xls文件
- phpexcel使用方法
- 使用PHP下载Excel时会出现乱码的解决方法