PHP生成Excel表格 PHP导入Excel数据
1 | 下载PHPexcelPHP生成Excel表格 //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法://先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据保存进数据库require_once "./PHPExcel/PHPExcel.php";require_once "./PHPExcel/PHPExcel/Cell/DataType.php";require_once "./PHPExcel/PHPExcel/IOFactory.php";/** * PHP生成Excel表格函数 * @param $title 生成表格标题 * @param array[] $content 表格内容 二维数组 * @return 返回生成的Excel路径 */function creatExcel($title,$content=[[]]){//实例化PHPExcel类,类似于在桌面上新建一个Excel表格 $PHPExcel = new \PHPExcel();//获得当前活动sheet的操作对象 默认创建一个活动的窗口 $PHPSheet = $PHPExcel->getActiveSheet();//给当前活动sheet设置名称 $PHPSheet->setTitle($title);// 1.逐个单元格去填充数据,适合数据量较大的情况//给当前活动sheet填充数据,数据填充是按顺序一行一行填充的,假如想给A1留空,可以直接setCellValue('A1','');// $PHPSheet->setCellValue('A1','姓名')->setCellValue('B1','分数');// $PHPSheet->setCellValue('A2','张三')->setCellValue('B2','50');// 2.一次性填充数据,适合数据量较小的情况// $array = [// ["姓名","分数",'性别'],// ["老王","90",'男'],// ["小白","80",'男'],// ]; $PHPSheet->fromArray($content);//按照指定格式生成Excel文件,'Excel2007'表示生成2007版本的xlsx, $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,'Excel2007');//表示在$path路径下面生成demo.xlsx文件 $PHPWriter->save('./'.$title.'.xlsx'); return './'.$title.'.xlsx';}PHP获取Excel表格图片和数据/** * 获取Excel表格图片和数据 * @param string $content Excel表格位置 * @return 二维数组 表格数据和图片地址 */function getImage(string $content){ header("content-type:texthtml;charset-ut8"); //读取的excel文件 date_default_timezone_set("PRC");//默认时区设置成中国标准时间。 //读取excel文件 try{ $inputFileType = PHPExcel_IOFactory::identify($content); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($content); } catch(Exception $e) { die('加载文件发生错误: "'.pathinfo($content,PATHINFO_BASENAME).'": '.$e->getMessage()); } $sheet = $objPHPExcel->getSheet(0); $data=$sheet->toArray();//该方法读取不到图片图片需单独处理 $imageFilePath='./images/'.date("Y-m-d").'/';//图片在本地存储的路径 if(!file_exists( $imageFilePath )) { mkdir("$imageFilePath", 0777, true); } //处理图片 foreach($sheet->getDrawingCollection() as $img) { list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());// 获取图片所在行和列 $imageFileName = $img->getCoordinates().mt_rand(100, 999); switch($img->getExtension()) { case 'jpg': $imageFileName.='.jpg'; imagejpeg(imagecreatefrompng($img->getpath()),$imageFilePath.$imageFileName); break; case 'gif': $imageFileName.='.gif'; imagegif(imagecreatefrompng($img->getpath()),$imageFilePath.$imageFileName); break; case 'png': $imageFileName.=' .png'; imagepng(imagecreatefrompng($img->getpath()),$imageFilePath.$imageFileName); break; } //由于图片所在位置的列号为字母,转化为数字 $ten= 0; $len = strlen($startColumn); for($i=1 ;$i<=$len;$i++){ $char = substr($startColumn,0-$i,1);//反向获取单个字符 $int = ord($char); $ten += ($int -65)* pow(26,$i-1); } $startColumn = $ten; $data[$startRow- 1][$startColumn]=$imageFilePath.$imageFileName;//把图片插入到数组中 } return $data;//返回二维数组} |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)