php导入excel的图片

简介: php导入excel的图片

在某次开发中,突然有了需要使用php导入excel图片的功能,所以特意研究了下.

准备工作

首先,我们创建一个表格:

image.png

phpexcel库导入

在很久之前,我们导入excel使用的库是phpexcel库:

composer require PHPOffice/Phpexcel

代码如下:

<?php
include "./vendor/autoload.php";
//获取xlsx文件数据
function getExcel($file)
{
    $reader = PHPExcel_IOFactory::load($file);//简易方式加载文件
    $resule = $reader->getSheet(0)->toArray(null, false, false, true);//获取首个工作簿信息并转为数组
    //过滤空白行
    foreach ($resule as $key => $vo) {
        if (count(array_unique($vo)) == 1) {
            unset($resule\[$key\]);
        }
    }
    array\_walk\_recursive($resule, function (&$nod) {
        $nod === null ? ($nod = '') : $nod = htmlentities($nod);
    });//NULL转空白字符|拦截XSS
    return $resule;
}
var_dump(getExcel('test.xlsx'));

输出:

image.png

很明显,使用常规方法是获取不到图片的,我们需要使用另外一种方式获取

由于表格图片的特性,在同一行,同一列,可能会出现又有数据,又有图片的情况,而且图片不止1张,所以不建议单独获取图片

单独读取表格图片代码:

<?php
include "./vendor/autoload.php";
//获取表格图片
function getImg($file)
{
    $excel = PHPExcel_IOFactory::load($file);//把导入的文件目录传入,系统会自动找到对应的解析类
    $sheet = $excel->getSheet(0);//选择第几个表,如下面图片,默认有三个表
    /*取图片*/
    $imgData = array();
    $imageFilePath = 'temp/';//图片保存目录
    //遍历表格图片
    foreach ($sheet->getDrawingCollection() as $img) {
        list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());//获取图片所在行和列
        /*表格解析后图片会以资源形式保存在对象中,可以通过getImageResource函数直接获取图片资源然后写入本地文件中*/
        //随机一个文件名,用于保存图片
        $imageFileName =  md5(uniqid());
        @mkdir($imageFilePath,0777,true);
        $imgFile = $imageFilePath.$imageFileName.'.'.$img->getExtension();
        copy($img->getPath(),$imgFile);
        $imgData\[$startRow\]\[$startColumn\]\[\] = $imgFile;//追加到数组中去
    }
    return $imgData;
}
var_dump(getImg('test.xlsx'));

输出结果:

image.png

目录
相关文章
|
5天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
37 8
|
2月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
3月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
50 1
|
5月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
7月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
280 1
|
6月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
7月前
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
62 2
|
6月前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
171 0
|
8月前
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
1330 1
|
7月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
91 0

热门文章

最新文章