ThinkPHP 3.2.3 使用 PHPExcel 类库导入xls/xlsx,导入带图片的xls/xlsx

这篇博客介绍了如何在ThinkPHP 3.2.3框架中使用PHPExcel库来处理Excel文件,包括导入带有图片的xls/xlsx文件。详细步骤涉及将类库引入、加载不同版本的Excel、读取工作表信息、获取最大行数和列数、转换列名、读取公式和文本值,以及如何单独读取和处理Excel中的图片。同时,给出了上传Excel并读取内容存储到数据库,以及处理图片的代码示例。
摘要由CSDN通过智能技术生成

将PHPExcel 类库放到 ThinkPHP 的 Vendor 目录下

在这里插入图片描述

在使用的地方 使用Vendor() 引入
    /**
     *  数据导入
     * @param string $file excel文件
     * @param string $subtype 节点id
     * @return string   返回解析数据
     * @throws PHPExcel_Exception
     * @throws PHPExcel_Reader_Exception
     */
    function importLedgerExecl($filename = '', $subtype)
    {
        Vendor('PHPExcel.PHPExcel');  //引入PHP EXCEL类
    }
Excel 2005 和 2007 使用不同的方法加载
        $extension = strrchr($filename, '.');
        if ($extension == '.xlsx') {
            $objReader = new \PHPExcel_Reader_Excel2007();
            $objPHPExcel = $objReader->load($filename);
        } else if ($extension == '.xls') {
            $objReader = new \PHPExcel_Reader_Excel5();
            $objPHPExcel = $objReader->load($filename);
        }
获取Excel 内工作表数量[ Sheet ]
 $sheetCount = $objPHPExcel->getSheetCount();
 for ($i = 0; $i < $sheetCount; $i++) 
 {
 	$objWorksheet = $objPHPExcel->getSheet($i);
 }
// 如果只有一个工作表
// $objWorksheet = $objPHPExcel->getActiveSheet();
获取工作表名称
$sheetTitle = $objWorksheet->getTitle();
获取Excel 最大行数
$highestRow = $objWorksheet->getHighestRow();
获取Excel 最大列数
$highestColumn = $objWorksheet->getHighestColumn();
将列名称转换为数字 [ A->0 ,B->1]【如果列数超过Z列,自行百度处理方法】
$highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);
获取公式的值
getFormattedValue()
获取文本值
getValue()
循环行列获取单元格内的数据
// 第二行开始是数据
$excelData = array();
for ($row = 2; $row <= $highestRow; $row++) {
		//根据第二行获取第0列的值
              $indexColVal = (string)$objWorksheet->getCellByColumnAndRow(0, $row)->getValue();
              //如果第二行第一列的值为空则结束遍历
              if ($indexColVal == '') {
                  break;
              }
              for ($col = 0; $col < $highestColumnIndex; $col++) {
                  $excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
              }
          }
获取Excel 文档中所有图片
// 返回值为集合
//$objWorksheet->getDrawingCollection()
foreach ($objWorksheet->getDrawingCollection() as $drawing) {

}
获取图片所在行和列[ Excel 内图片和文本值是分开的,所以如果既要读取文本又要读取图片,必须分开的读取 ]
list($startColumn, $startRow) = \PHPExcel_Cell::coordinateFromString($drawing->getCoordinates());
获取图片的路径
 $fileName = $drawing->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值