我使用的是thinkphp框架
遇到個一場景,發貨員發貨之後需要一個一個給用戶發通知短信,效率太低,所以我就想到了模板短信,
降到效率問題,我是這樣設計的,他把Excel導入,我通過phpExcel進行解析,匹配到姓名,電話,和訂單號,訂單類型
然後向用戶發送通知短信,根據訂單類型發送不同的訂單查詢地址和通知資訊
------------------------------- -------------------------------------------------- -------------------------------------------------- -------
這篇主要記錄下我使用PHPExcel的過程
這篇不是遠創,是看了好多大神的帖子後整理的,甚至說複製的程式碼,但是具體的原文我沒有做記錄,就不一點一點貼出來了
寫此文僅供自己記錄學習之用
#-------- -------------------------------------------------- -------------------------------------------------- ----------------------
1:下載PHPExcel
可以從官網下載,我也上傳文件了http://download.csdn.net/detail/fei003/9851672
2 把PHPExcel放入專案中
把PHPExcel解壓縮後的檔案放入Thinkphp/Library /Vendor中
3.把操作方法封裝成函數(或類別庫),方便自己使用
excel.PHP 函數
<?php /** * Created by PhpStorm. * User: 飞 * Date: 2017/6/13 * Time: 10:20 * 导入excel文件,对表格进行解析 */ function importExecl($file,$filetype){ if(!file_exists($file)){ return array("error"=>0,'message'=>'file not found!'); } // 判断文档类型,使用相应的方法,可以解析多种文件,这只是判断两个,其余的自己判断 if($filetype == 'xlsx'){ $filetype = 'Excel2007'; }elseif($filetype == 'xls'){ $filetype = 'Excel5'; } // 引入扩展 Vendor("PHPExcel.PHPExcel.IOFactory"); $objReader = \PHPExcel_IOFactory::createReader($filetype); try{ $PHPReader = $objReader->load($file); }catch(Exception $e){} if(!isset($PHPReader)) return array("error"=>0,'message'=>'read error!'); // 获得所有的sheets表格 $allWorksheets = $PHPReader->getAllSheets(); $i = 0; //对sheet表格遍历分析 foreach($allWorksheets as $objWorksheet){ // 获得sheet表格的标题 $sheetname=$objWorksheet->getTitle(); // 获得总行数 $allRow = $objWorksheet->getHighestRow(); $highestColumn = $objWorksheet->getHighestColumn(); // 获得总列数 $allColumn = \PHPExcel_Cell::columnIndexFromString($highestColumn); $array[$i]["Title"] = $sheetname; $array[$i]["Cols"] = $allColumn; $array[$i]["Rows"] = $allRow; $arr = array(); // 对合并的单元格进行分析 $isMergeCell = array(); foreach ($objWorksheet->getMergeCells() as $cells) {//merge cells foreach (\PHPExcel_Cell::extractAllCellReferencesInRange($cells) as $cellReference) { $isMergeCell[$cellReference] = true; } } for($currentRow = 1 ;$currentRow<=$allRow;$currentRow++){ $row = array(); for($currentColumn=0;$currentColumn<$allColumn;$currentColumn++){; $cell =$objWorksheet->getCellByColumnAndRow($currentColumn, $currentRow); $afCol = \PHPExcel_Cell::stringFromColumnIndex($currentColumn+1); $bfCol = \PHPExcel_Cell::stringFromColumnIndex($currentColumn-1); $col = \PHPExcel_Cell::stringFromColumnIndex($currentColumn); $address = $col.$currentRow; $value = $objWorksheet->getCell($address)->getValue(); if(substr($value,0,1)=='='){ return array("error"=>0,'message'=>'can not use the formula!'); exit; } if($cell->getDataType()==\PHPExcel_Cell_DataType::TYPE_NUMERIC){ // $cellstyleformat=$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat(); // $formatcode=$cellstyleformat->getFormatCode(); if (preg_match('/^([$[A-Z]*-[0-9A-F]*])*[hmsdy]/i', $formatcode)) { $value=gmdate("Y-m-d", \PHPExcel_Shared_Date::ExcelToPHP($value)); }else{ $value=\PHPExcel_Style_NumberFormat::toFormattedString($value,$formatcode); } } if($isMergeCell[$col.$currentRow]&&$isMergeCell[$afCol.$currentRow]&&!empty($value)){ $temp = $value; }elseif($isMergeCell[$col.$currentRow]&&$isMergeCell[$col.($currentRow-1)]&&empty($value)){ $value=$arr[$currentRow-1][$currentColumn]; }elseif($isMergeCell[$col.$currentRow]&&$isMergeCell[$bfCol.$currentRow]&&empty($value)){ $value=$temp; } $row[$currentColumn] = $value; } $arr[$currentRow] = $row; } $array[$i]["Content"] = $arr; $i++; } // spl_autoload_register('Think');//must, resolve ThinkPHP and PHPExcel conflicts unset($objWorksheet); unset($PHPReader); unset($PHPExcel); unlink($file); return array("error"=>1,"data"=>$array); }
#注意:實例化時命名空間要加\
#使用的時候就簡單了,下面是使用程式碼
<?php namespace PhpExcel\Controller; use Think\Controller; /** * Created by PhpStorm. * User: 飞 * Date: 2017/6/7 * Time: 11:26 */ class IndexController extends Controller { public function index() { $this->display(); } public function importExcel() { // 表单提交文件过来 // 获得文件路径 $file = $_FILES[excel][tmp_name]; if(!file_exists($file)){ echo '文件不存在'; exit; } // $fileMessage = explode('.',$_FILES[excel][name]); // $filename = $fileMessage[0]; // 获得文件扩展名 $filetype = $fileMessage[1]; //使用函数,获得excel数据 $re = importExecl($file,$filetype); $content = $re['data'][0]['Content']; // P助手函数,自己扩展 P($content);exit; /*逻辑代码*/ } }
然後在頁面中列印如下
#從頁面上來看,資料解析的很不錯
#當然,拿到數據後,是不是想做什麼就做什麼。 。 。嘿嘿
------------------------------------------- -------------------------------------------------- ------
另一個場景就是把自己的資料產生excel表格
#程式碼如下
public function outPortExcel() { // 引入文件 Vendor("PHPExcel.PHPExcel"); vendor('PHPExcel/PHPExcel/Writer/Excel2007.php'); $phpExcel = new \PHPExcel(); $phpExcel->getProperties()->setTitle("Office 2007 XLSX Test Document title"); $phpExcel->getProperties()->setSubject("Office 2007 XLSX Test Document subject"); //单独添加数据 $phpExcel->setActiveSheetIndex(0); $phpExcel->getActiveSheet()->setCellValue('A1', '姓名');//可以指定位置 $phpExcel->getActiveSheet()->setCellValue('B1', '年龄'); $phpExcel->getActiveSheet()->setCellValue('C1', '性别'); $phpExcel->getActiveSheet()->setCellValue('D1', '家庭'); //循环添加数据(根据自己的逻辑) for($i = 2;$i<200;$i++) { $phpExcel->getActiveSheet()->setCellValue('A' . $i, '张鹏飞'.$i); $phpExcel->getActiveSheet()->setCellValue('B' . $i, rand(25,28)); $phpExcel->getActiveSheet()->setCellValue('C' . $i, rand(0,1)); $phpExcel->getActiveSheet()->setCellValue('D' . $i, 'yes'); } $objWriter = new \PHPExcel_Writer_Excel2007($phpExcel); // 文件名 $filename = './a.xlsx'; // 存储文件 $objWriter->save($filename); // 下载文件 // 强制下载函数 代码请转至 http://blog.csdn.net/fei003/article/details/54614097 download('./a.xlsx'); }
ok,這就是PHPExcel的使用過程
以上是PHPExcel的使用過程介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

完全指南:如何使用PHP扩展PHPExcel处理Excel文件引言:在处理大量数据和统计分析时,Excel文件经常被用作数据存储和交换的一种常见格式。使用PHP扩展PHPExcel,我们可以轻松地读取、写入和修改Excel文件,从而有效地处理Excel数据。本文将介绍如何使用PHP扩展PHPExcel来处理Excel文件,并提供代码示例。一、安装PHPExc

随着数字化时代的到来,数据已经成为了我们日常生活和工作中最重要的一部分,而Excel文件则成为数据处理的重要工具之一。相信很多PHP开发者也会在工作中经常遇到使用Excel文件进行数据处理和操作的情况。本文将为大家介绍使用PHPExcel库来处理Excel文件的方法和注意事项。什么是PHPExcel?PHPExcel是一个PHP类

PHPEXCEL是一个优秀的PHP读写Excel文件的类库,它提供了非常充分的API,能够让我们使用PHP来读写Excel文件。而有些时候,我们需要将Excel文件转换成CSV文件,在一些场合下使用。那么,本文主要讲述如何使用PHPEXCEL类库将Excel文件转换成CSV文件,并进行打开。

PHPExcel是一款开源的PHP库,用于处理MicrosoftExcel(.xls和.xlsx)文件。它可以读取、写入和操作Excel文件,提供了丰富的函数和方法。在PHP项目中使用PHPExcel库,可以快速方便地处理Excel文件,实现数据的导入、导出和数据处理等功能。本文将介绍如何使用PHPExcel处理Excel文件。一、安装PHPExcel要使

在如今信息快速传递的时代,数据的处理和存储变得越来越重要。而Excel表格的使用是很多人的首选,这是因为Excel表格可以整合各种数据并且可以轻松地进行分析和处理。为了更加高效地完成Excel表格的创建,我们可以使用PHP和PHPExcel这两个强大的工具。在本篇文章中,我们将介绍如何使用PHP和PHPExcel创建Excel文件。1.安装PHPExcel首

PHP开发技巧:如何使用PHPExcel和PHPExcel_IOFactory操作MySQL数据库概述:在Web开发中,处理Excel文件是一个常见且重要的任务。PHPExcel是一个功能强大而且易于使用的PHP库,它可以帮助我们读取和写入Excel文件。本文将介绍如何使用PHPExcel和PHPExcel_IOFactory库来操作MySQL数据库。步骤1

thinkphp3.2隐藏模块名的方法:1、在根目录下创建一个“.htaccess”文件;2、添加“RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d”;3、在对应模块下面的“config.php”中设置访问模块即可。

PHPExcel是一种处理微软 Excel 文件的开源 PHP 库,可以读取、创建、修改和保存 Excel 文件。它是一个强大且高度可定制的工具,可用于处理数据分析、报告生成、数据导入和导出等任务。在本文中,将介绍PHPExcel为什么成为PHP开发者关注的对象。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。