当前位置: 首页 > news >正文

php 使用phpoffice/phpspreadsheet拓展实现导出图片

基础操作参考:https://blog.csdn.net/huaweichenai/article/details/95994006

文档地址:https://phpspreadsheet.readthedocs.io/

github地址:https://github.com/PHPOffice/PhpSpreadsheet

导出插入图片主要使用\PhpOffice\PhpSpreadsheet\Worksheet\Drawing实现

一:方法介绍

$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setName('Logo');//设置图片名称
$drawing->setDescription('Logo');//设备图片描述
$drawing->setPath('./images/officelogo.jpg');//设置图片地址
$drawing->setHeight(36);//设置图片高度
$drawing->setCoordinates('A1');//设置图片绘制到指定单元格
$drawing->setWorksheet($spreadsheet->getActiveSheet());//将图片绘制到工作表

二:实现实例

$spreadsheet = new Spreadsheet();//创建一个新的excel文档
$sheet = $spreadsheet->getActiveSheet();//获取当前操作sheet的对象
//将图片绘制到excel中
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setPath($img);
$drawing->setHeight(50);
$drawing->setCoordinates('A1');
$drawing->setWorksheet($sheet);
$writer = new Xlsx($spreadsheet);
$writer->save('xxx.xlsx');//生成excel文件//将多个图片绘制到excel中
$spreadsheet = new Spreadsheet();//创建一个新的excel文档
$sheet = $spreadsheet->getActiveSheet();//获取当前操作sheet的对象
//将图片绘制到excel中
foreach ($imgs as $img) {$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();$drawing->setPath($img);$drawing->setHeight(50);$drawing->setCoordinates('A1');$drawing->setWorksheet($sheet);
}
$writer = new Xlsx($spreadsheet);
$writer->save('xxx.xlsx');//生成excel文件

相关文章:

php 使用phpoffice/phpspreadsheet拓展实现导出图片

基础操作参考:https://blog.csdn.net/huaweichenai/article/details/95994006 文档地址:https://phpspreadsheet.readthedocs.io/ github地址:https://github.com/PHPOffice/PhpSpreadsheet 导出插入图片主要使用\PhpOffice\PhpSpreadshee…...

几种解决mfc140.dll文件缺失的方法,电脑提示mfc140.dll怎么办

电脑提示mfc140.dll缺失,如果你不去处理的话,那么你的程序游戏什么都是启动不了的,如果你想知道有什么方法可以解决那么可以参考这篇文章进行解决,今天给大家几种解决mfc140.dll文件缺失的方法。电脑提示mfc140.dll也不用担心解决…...

并发修改异常

并发修改异常(Concurrent Modification Exception)是指在多线程环境下,当一个方法检测到对象的并发修改,但不允许这种修改时,抛出的一种异常。换句话说,当两个或多个线程同时对一个对象进行修改时&#xff…...

split() 函数实现多条件转为数据为数组类型

使用 split() 函数并传递正则表达式 /[,;.-]/ 作为分隔符来将字符串按照逗号、分号和破折号进行拆分,并将结果赋值给 splitArray 数组。下面是一个示例代码: 在上面的示例中,我们使用 split() 函数将 inputString 字符串按照逗号、分号和破折…...

【Springboot】Vue3-Springboot引入JWT实现登录校验以及常见的错误解决方案

文章目录 前言一、JWT简单介绍二、token校验设计思路三、使用步骤Springboot部署JWT引入依赖:创建登录实体类后端:LoginController.java路由守卫函数 四、问题 前言 项目版本: 后端: Springboot 2.7、 Mybatis-plus、Maven 3.8.1…...

VueCli 自定义创建项目及配置

一、VueCli 自定义创建项目 1.安装脚手架 (已安装) npm i vue/cli -g2.创建项目 vue create hm-exp-mobile选项 Vue CLI v5.0.8 ? Please pick a preset:Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint) > Manually select features 选自定义手动…...

2024年节假日sql脚本(区分休息日、节假日、工作日、调休工作)

建表 CREATE TABLE no_work_day (id int NOT NULL AUTO_INCREMENT,day varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb3 COMMENT节假日表;执行脚本插入数据 INSERT INTO no_work_day (day) VALUES (20240101); INSERT INTO no_work_day (…...

vue3介绍

介绍 3完全兼容2的语法 vue3:体积更小,性能会更高。底层做了很多优化 2倍左右 vue3vitets 渐进式框架 vue3和vue2 的区别 新语法,性能上提升很多 思想是一致的:动态绑定:状态data&计算属性,监听某些状态…...

Spark SQL自定义collect_list分组排序

想要在spark sql中对group by concat_ws()的字段进行排序,可以参考如下方法。 原始数据如下: ------------ |id |name |type| ------------ |1 |name1|p | |2 |name2|p | |3 |name3|p | |1 |x1 |q | |2 |x2 |q | |3 |x3 |q | …...

2023年云计算的发展趋势如何?

混合云的持续发展:混合云指的是将公有云和私有云进行结合,形成一种统一的云计算环境。随着企业对数据隐私和安全性的要求越来越高,以及在数据存储和处理方面的需求不断增长,混合云正在逐渐成为主流。预计未来混合云将会继续保持高…...

uniapp中picker 获取时间组件如何把年月日改成年月日默认时分秒为00:00:00

如图所示,uniapp中picker组件的日期格式为: 但后端要 2023-11-08 00:00:00格式 如何从2023-11-08转化为 2023-11-08 00:00:00:👇 const date new Date(e.detail.value);//"2023-11-17" date.setHours(0, 0, 0); // 2…...

k8s operator

Kubernetes Operator 是一种用于特定应用的控制器,可扩展 Kubernetes API 的功能,来代表 Kubernetes 用户创建、配置和管理复杂应用的实例。它基于基本 Kubernetes 资源和控制器概念构建,但又涵盖了特定领域或应用的知识,用于实现…...

使用io_uring

目录 升级内核以支持io_uring Io_uring 关注点 有序性 IOPOLL SQPOLL 环大小 wrk线程数量 升级内核以支持io_uring #!/bin/bash#内核源码压缩包 kernel_targz"linux-5.14.21.tar.xz"#内核源码解压后的目录 kernel_source"linux-5.14.21"echo "…...

LeetCode算法题解(回溯)|LeetCode93. 复原 IP 地址、LeetCode78. 子集、LeetCode90. 子集 II

一、LeetCode93. 复原 IP 地址 题目链接:93. 复原 IP 地址 题目描述: 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.…...

vue、react数据绑定的区别?

Vue 和 React 是两个流行的前端框架,它们在数据绑定方面有一些区别。 Vue 的数据绑定: Vue 使用双向数据绑定(two-way data binding)的概念。这意味着当数据发生变化时,视图会自动更新;同时,当…...

前端Vue 页面滑动监听 拿到滑动的坐标值

前言 前端Vue 页面滑动监听 拿到滑动的坐标值 实现 Vue2写法 mounted() {// 监听页面滚动事件window.addEventListener("scroll", this.scrolling);}, methods: { scrolling() {// 滚动条距文档顶部的距离let scrollTop window.pageYOffset ||document.documentE…...

CSS实现鼠标移至图片上显示遮罩层及文字效果

效果图&#xff1a; 1、将遮罩层html代码与图片放在一个div 我是放在 .proBK里。 <div class"proBK"><img src"../../assets/image/taskPro.png" class"proImg"><div class"imgText"><h5>用户在线发布任务&l…...

【OpenCV实现图像:图像处理技巧之空间滤波】

文章目录 概要导入库空间过滤器模板展示效果分析与总结 概要 空间滤波器是数字图像处理中的基本工具之一。它通过在图像的每个像素位置上应用一个特定的滤波模板&#xff0c;根据该位置周围的相邻像素值进行加权操作&#xff0c;从而修改该像素的值。这种加权操作能够突出或模…...

载波通讯电表的使用年限是多久?

随着科技的飞速发展&#xff0c;智能家居、物联网等概念逐渐深入人心&#xff0c;载波通讯电表作为一种新型的智能电表&#xff0c;凭借其低功耗、高可靠性、远程通讯等优点&#xff0c;广泛应用于居民用电、工业生产等领域。那么&#xff0c;载波通讯电表的使用年限是多久呢&a…...

微信小程序多端应用 Donut 多端编译

目前支持 wxml、wxs、js/ts、json&#xff0c;less/sass 等文件类型&#xff0c;资源支持通过配置区分不同平台 wxml中使用 <!-- #if MP --><view class"test-view">wechat</view><!-- #elif IOS --><view class"test-view"…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...