当前位置: 首页 > 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"…...

告别CANoe!用百元级UTA0503 LIN工具,手把手教你给MCU做本地OTA升级(附完整协议解析)

百元级LIN工具实战&#xff1a;手把手构建MCU本地OTA升级系统 在嵌入式开发领域&#xff0c;设备固件升级一直是个绕不开的痛点。传统方案要么依赖昂贵的专业工具&#xff0c;要么需要拆机烧录&#xff0c;既增加成本又影响用户体验。本文将展示如何用淘宝售价仅百元的UTA0503 …...

终极Material Design Lite CI/CD指南:使用GitHub Actions实现自动化构建与测试

终极Material Design Lite CI/CD指南&#xff1a;使用GitHub Actions实现自动化构建与测试 【免费下载链接】material-design-lite Material Design Components in HTML/CSS/JS 项目地址: https://gitcode.com/gh_mirrors/ma/material-design-lite Material Design Lite…...

Qwen3.5-9B-AWQ-4bit Qt桌面应用开发:跨平台AI助手客户端

Qwen3.5-9B-AWQ-4bit Qt桌面应用开发&#xff1a;跨平台AI助手客户端 1. 为什么需要本地化AI助手 在数字化办公场景中&#xff0c;我们经常遇到需要快速获取信息、处理文档或编写代码的需求。传统的云端AI服务虽然强大&#xff0c;但存在响应延迟、隐私顾虑和网络依赖等问题。…...

Particalground完全配置手册:20个参数详解与实战案例

Particalground完全配置手册&#xff1a;20个参数详解与实战案例 【免费下载链接】particleground A jQuery plugin for snazzy background particle systems 项目地址: https://gitcode.com/gh_mirrors/pa/particleground Particalground是一款强大的jQuery粒子背景插件…...

PostCSS-pxtorem性能优化:提升CSS转换效率的7个关键方法

PostCSS-pxtorem性能优化&#xff1a;提升CSS转换效率的7个关键方法 【免费下载链接】postcss-pxtorem Convert pixel units to rem (root em) units using PostCSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-pxtorem PostCSS-pxtorem是一款强大的PostCSS插…...

HTTPie CLI与Teams:企业协作平台的消息推送终极指南

HTTPie CLI与Teams&#xff1a;企业协作平台的消息推送终极指南 【免费下载链接】cli &#x1f967; HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. 项目地址: https://g…...

Voxtral-4B-TTS-2603语音合成入门:标点符号(!?。)对语调与停顿的实际影响

Voxtral-4B-TTS-2603语音合成入门&#xff1a;标点符号&#xff08;&#xff01;&#xff1f;。&#xff09;对语调与停顿的实际影响 1. 引言 你是否遇到过这样的情况&#xff1a;使用语音合成工具生成的音频听起来机械生硬&#xff0c;缺乏自然的情感表达&#xff1f;其实&a…...

源码剖析:深入理解Ruby OAuth 2.0库的内部架构与设计模式

源码剖析&#xff1a;深入理解Ruby OAuth 2.0库的内部架构与设计模式 【免费下载链接】oauth2 &#x1f510; oauth2 - A Ruby wrapper for the OAuth 2.0, & 2.1 Authorization Frameworks, including OpenID Connect (OIDC) 项目地址: https://gitcode.com/gh_mirrors/…...

AI模型部署效率提升210%,Docker AI Toolkit 2026到底重构了哪4层编排协议?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI模型部署效率跃升210%&#xff1a;Docker AI Toolkit 2026的范式革命 Docker AI Toolkit 2026&#xff08;DAIT-2026&#xff09;正式终结了传统模型容器化部署中“构建慢、启动卡、调试难”的三重瓶…...

PR曲线绘制超简单

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 PR曲线绘制超简单&#xff1a;从入门到自动化实战指南 目录 PR曲线绘制超简单&#xff1a;从入门到自动化实战指南 引言&#xff…...