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

Spreadsheet导出excel

记录下常用的方法

  1. 数字转字符:Coordinate::stringFromColumnIndex(27); 输出 AA
  2. 字符转数字:Coordinate::columnIndexFromString('AA'); 输出27
  3. 设置单元格式 eg:(设置为保留两位小数点)
    $sheet->getStyle($columnLetter)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
    $columnLetter 可以按照上面的数字转字符获取。也可以直接设置单元列
  4. 设置样式
    $endColumn = Coordinate::stringFromColumnIndex(count($headers));$endRow = count($data);// 设置区域内的格式:eg:(添加边框,水平居中,上下居中)$sheet->getStyle("A1:$endColumn" . $endRow)->applyFromArray(['borders' => ['allBorders' => ['borderStyle' => Border::BORDER_THIN,],],'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER,'vertical' => Alignment::VERTICAL_CENTER,],]);
  1. 重新判断类型,数字改为文本类型,取消科学技术法 【CustomValueBinder() 这个类需手动创建】
    Cell::setValueBinder(new CustomValueBinder());
<?phpnamespace extend\common\helpers;use \PhpOffice\PhpSpreadsheet\Cell\{DefaultValueBinder, DataType};
use PhpOffice\PhpSpreadsheet\RichText\RichText;/*** @descirption 改类是为了解决 phpSpreadsheet 中dataTypeForValue 的返回类型不正确* 导致导出的文件中出现科学计数法*/
class CustomValueBinder extends DefaultValueBinder
{public static function dataTypeForValue($value): string{//只重写dataTypeForValue方法,去掉一些不必要的判断if (is_null($value)) {return DataType::TYPE_NULL;} elseif ($value instanceof RichText) {return DataType::TYPE_INLINE;} elseif ($value && $value[0] === '=' && strlen($value) > 1) {return DataType::TYPE_FORMULA;} elseif (is_bool($value)) {return DataType::TYPE_BOOL;} elseif (is_float($value) || is_int($value)) {return DataType::TYPE_NUMERIC;}return DataType::TYPE_STRING;}
}

相关文章:

Spreadsheet导出excel

记录下常用的方法 数字转字符&#xff1a;Coordinate::stringFromColumnIndex(27); 输出 AA字符转数字&#xff1a;Coordinate::columnIndexFromString(AA); 输出27设置单元格式 eg:(设置为保留两位小数点) $sheet->getStyle($columnLetter)->getNumberFormat()->set…...

Leetcode|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

15.三数之和 哈希解法&#xff1a; 用俩个for循环求出&#xff0c;所需的a和b&#xff0c;再用哈希表&#xff0c;判断剩余的那个c是否在数组 class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>…...

使用ceph-csi把ceph-fs做为k8s的storageclass使用

背景 ceph三节点集群除了做为对象存储使用&#xff0c;计划使用cephfs替代掉k8s里面现有的nfs-storageclass。 思路 整体实现参考ceph官方的ceph csi实现&#xff0c;这套环境是arm架构的&#xff0c;即ceph和k8s都是在arm上实现。实测下来也兼容。 ceph-fs有两种两种挂载方…...

太速科技-212-RCP-601 CPCI刀片计算机

RCP-601 CPCI刀片计算机 一、产品简介 RCP-601是一款基于Intel i7双核四线程的高性能CPCI刀片式计算机&#xff0c;同时&#xff0c;将CPCI产品的欧卡结构及其可靠性、可维护性、可管理性与计算机的抗振动、抗冲击、抗宽温环境急剧变化等恶劣环境特性进行融合。产品特别…...

【解决 Windows 下 SSH “Bad owner or permissions“ 错误及端口转发问题详解】

使用 Windows 连接远程服务器出现 Bad owner or permissions 错误及解决方案 在 Windows 系统上连接远程服务器时&#xff0c;使用 SSH 可能会遇到以下错误&#xff1a; Bad owner or permissions on C:\Users\username/.ssh/config这个问题通常是由于 SSH 配置文件 .ssh/con…...

使用预训练的BERT进行金融领域问答

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在开发并优化一个基于预训练BERT模型的问答系统&#xff0c;专注于金融领域的应用。随着金融市场信息复杂性和规模的增加&#xff0c;传统的信息检索方法难以高效…...

ReactOS系统中MM_REGION结构体的声明

ReactOS系统中MM_REGION结构体的声明 ReactOS系统中MM_REGION结构体的声明 文章目录 ReactOS系统中MM_REGION结构体的声明MM_REGION MM_REGION typedef struct _MM_REGION {ULONG Type;//MEM_COMMIT,MEM_RESERVEULONG Protect;//PAGE_READONLYY,PAGE_READ_WRITEULONG Length;…...

web相关知识学习笔记

一&#xff0c; web安全属于网络信息安全的一个分支&#xff0c;www即全球广域网&#xff0c;也叫万维网&#xff0c;是一个分布式图形信息系统 二&#xff0c; 1.①安全领域&#xff0c;通常将用户端&#xff08;浏览器端&#xff09;称为前端&#xff0c;服务器端称为后端 ②…...

App测试环境部署

一.JDK安装 参考以下AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 二.SDK安装 安装地址&#xff1a;https://www.androiddevtools.cn/ 解压 环境变量配置 变量名&#xff1a;ANDROID_SDK_HOME 参考步骤&#xff1a; A…...

【论文阅读】Tabbed Out: Subverting the Android Custom Tab Security Model

论文链接&#xff1a;Tabbed Out: Subverting the Android Custom Tab Security Model | IEEE Conference Publication | IEEE Xplore 总览 “Tabbed Out: Subverting the Android Custom Tab Security Model” 由 Philipp Beer 等人撰写&#xff0c;发表于 2024 年 IEEE Symp…...

2025 - AI人工智能药物设计 - 中药网络药理学和毒理学的研究

中药网络药理学和毒理学的研究 TCMSP&#xff1a;https://old.tcmsp-e.com/tcmsp.php 然后去pubchem选择&#xff1a;输入Molecule Name 然后进行匹配&#xff1a;得到了smiles 再次通过smiles&#xff1a;COC1C(CC(C2C1OC(CC2O)C3CCCCC3)O)O 然后再次输入&#xff1a;http…...

iwebsec靶场 XSS漏洞通关笔记

目录 前言 1.反射性XSS 2.存储型XSS 3.DOM型XSS 第01关 反射型XSS漏洞 1.打开靶场 2.源码分析 3.渗透 第02关 存储型XSS漏洞 1.打开靶场 2.源码分析 4.渗透 方法1&#xff1a; 方法2 方法3 第03关 DOM XSS漏洞 1.打开靶场 2.源码分析 3.渗透分析 3.渗透过程…...

设计模式-单例模型(单件模式、Singleton)

单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 单例模式同时解决了两个问题&#xff0c; 所以违反了单一职责原则&#xff1a; 保证一个类只有一个实例。 为什么会有人想要控制一个类所拥有的实例…...

笔记本双系统win10+Ubuntu 20.04 无法调节亮度亲测解决

sudo add-apt-repository ppa:apandada1/brightness-controller sudo apt-get update sudo apt-get install brightness-controller-simple 安装好后找到一个太阳的图标&#xff0c;就是这个软件&#xff0c;打开后调整brightness&#xff0c;就可以调整亮度&#xff0c;可…...

零基础Java第十一期:类和对象(二)

目录 一、对象的构造及初始化 1.1. 就地初始化 1.2. 默认初始化 1.3. 构造方法 二、封装 2.1. 封装的概念 2.2. 访问限定符 2.3. 封装扩展之包 三、static成员 3.1. 再谈学生类 3.2. static修饰成员变量 一、对象的构造及初始化 1.1. 就地初始化 在声明成员变…...

NumPy包(下) python笔记扩展

9.迭代数组 nditer 是 NumPy 中的一个强大的迭代器对象&#xff0c;用于高效地遍历多维数组。nditer 提供了多种选项和控制参数&#xff0c;使得数组的迭代更加灵活和高效。 控制参数 nditer 提供了多种控制参数&#xff0c;用于控制迭代的行为。 1.order 参数 order 参数…...

极狐GitLab 17.5 发布 20+ 与 DevSecOps 相关的功能【一】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

Oracle 第1章:Oracle数据库概述

在讨论Oracle数据库的入门与管理时&#xff0c;我们可以从以下几个方面来展开第一章的内容&#xff1a;“Oracle数据库概述”&#xff0c;包括数据库的历史与发展&#xff0c;Oracle数据库的特点与优势。 数据库的历史与发展 数据库技术的发展可以追溯到上世纪50年代&#xf…...

7、Nodes.js包管理工具

四、包管理工具 4.1 npm(Node Package Manager) Node.js官方内置的包管理工具。 命令行下打以下命令&#xff1a; npm -v如果返回版本号&#xff0c;则说明npm可以正常使用 4.1.1npm初始化 #在包所在目录下执行以下命令 npm init #正常初始化&#xff0c;手动…...

网络地址转换——NAT技术详解

网络地址转换——NAT技术详解 一、引言 随着互联网的飞速发展&#xff0c;IP地址资源日益紧张。为了解决IP地址资源短缺的问题&#xff0c;NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术应运而生。NAT技术允许一个私有IP地址的网络通…...

问:数据库存储过程优化实践~

存储过程优化是提高数据库性能的关键环节。通过精炼SQL语句、合理利用数据库特性、优化事务管理和错误处理&#xff0c;可以显著提升存储过程的执行效率和稳定性。以下是对存储过程优化实践点的阐述&#xff0c;结合具体示例&#xff0c;帮助大家更好地理解和实施这些优化策略。…...

C++ vector的使用(一)

vector vector类似于数组 遍历 这里的遍历跟string那里的遍历是一样的 1.auto&#xff08;范围for&#xff09; 2.迭代器遍历 3.operator void vector_test1() {vector<int> v;vector<int> v1(10, 1);//初始化10个都是1的变量vector<int> v3(v1.begin(), --…...

深入浅出:ProcessPoolExecutor 处理异步生成器函数

深入浅出&#xff1a;ProcessPoolExecutor 处理异步生成器函数 什么是 ProcessPoolExecutor&#xff1f;为什么要使用 ProcessPoolExecutor 处理异步生成器函数&#xff1f;ProcessPoolExecutor 处理异步生成器函数的基本用法1. 导入模块2. 定义异步生成器函数3. 定义处理函数4…...

elementUI表达自定义校验,校验在v-for中

注意&#xff1a;本帖为公开技术贴&#xff0c;不得用做任何商业用途 <el-form :inline"true" :rules"rules" :model"formData" ref"formRef" class"mt-[20px]"><el-form-item label"选择区域" prop&qu…...

Elasticsearch 在linux部署 及 Docker 集群部署详解案例示范

1. 在 CentOS 上安装和配置 Elasticsearch 在 CentOS 系统下&#xff0c;安装 Elasticsearch 主要分为以下步骤&#xff1a; 1.1 准备工作 在开始安装之前&#xff0c;确保你的系统满足以下基本条件&#xff1a; CentOS 版本要求&#xff1a;推荐使用 CentOS 7 及以上版本。…...

短信验证码发送实现(详细教程)

短信验证码 接口防刷强检验以及缓存验证码阿里云短信服务操作步骤验证码发送实现 好久没发文啦&#xff01;最近也是在工作中遇到我自认为需要记录笔记的需求&#xff0c;本人只求日后回顾有迹可寻&#xff0c;不喜勿喷&#xff01; 废话不多说&#xff0c;直接上代码&#xff…...

P450催化的联芳基偶联反应-文献精读72

Chemoenzymatic Synthesis of Fluorinated Mycocyclosin Enabled by the Engineered Cytochrome P450-Catalyzed Biaryl Coupling Reaction 经工程化的细胞色素P450催化的联芳基偶联反应实现氟代麦环素的化学酶促合成 摘要 将氟原子引入天然产物有望生成具有改良或新颖药理特…...

在不支持AVX的linux上使用PaddleOCR

背景 公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢? 是否支持avx lscpu | grep avx 支持avx的话,会显示相关信息 如果不支持的话,python运行时导入paddle会报错 怎么办呢 方案一 找公司it,看看虚拟机为什么…...

Python数据分析——Numpy

纯个人python的一个小回忆笔记&#xff0c;当时假期花两天学的python&#xff0c;确实时隔几个月快忘光了&#xff0c;为了应付作业才回忆起来&#xff0c;不涉及太多基础&#xff0c;适用于有一定编程基础的参考回忆。 这一篇笔记来源于下面哔哩哔哩up主的视频&#xff1a; 一…...

JMeter快速入门示例

JMeter是一款开源的性能测试工具&#xff0c;常用于对Web服务和接口进行性能测试。 下载安装 官方下载网址&#xff1a; https://jmeter.apache.org/download_jmeter.cgi也可以到如下地址下载&#xff1a;https://download.csdn.net/download/oscar999/89910834 这里下载Wi…...

接单干活的平台/朝阳区seo搜索引擎优化怎么样

Python入门之第三方模块安装 平台&#xff1a;Win10 x64 Anaconda3-5.3.0 &#xff08;Python3.7.0&#xff09; Issue说明&#xff1a;pip install line_profiler-2.1.2-cp37-cp37m-win_amd64.whl报错pip版本过低&#xff0c;需要更新1.19.0&#xff0c;而当前的版本是0.9.0 …...

wordpress 缩略图截图/网站优化建议

2、51单片机MAX7219数码管显示C程序/***************************************************程序名称&#xff1a; MAX7219 C语言控制程序*程序功能&#xff1a; 3线串行控制8位共阴数码管*3线定义&#xff1a;DIN 串行数据输入* LOAD 数据锁存* CLK 时钟输入******************…...

个人空间备案网站名称/曼联vs恩波利比分

概要&#xff1a;why&#xff1a;为什么回收&#xff0c;见whatwhat&#xff1a;垃圾回收哪些内存(不可达对象的确定)when&#xff1a;何时执行GC(安全点、安全区域)how&#xff1a;如何回收(原理——垃圾回收算法、实现——垃圾收集器)1、垃圾回收哪些内存JVM运行时数据区中&a…...

乌克兰网站建设/做博客的seo技巧

机器学习最近非常受欢迎。时刻都在发生如此多的事情,可能很难弄清楚您应该学习哪些想法。当你记得许多流行技术(ChatGPT、AI Art 等)都内置了多种技术和想法时,这会变得更加复杂。对于初学者来说,在没有先验知识的情况下以任何有意义的深度理解这些技术是不可能的。 在阅…...

怎样建设卡盟网站/网页优化方案

今日通过&#xff1a;13 通过题目编号&#xff1a;1107/1112/1114/1115/1116/1120/1123/1127/1128/1009/1035/1045/1089 任务完成率&#xff1a;75% 预计完成需要时间&#xff1a;2天 预计达到第二名时间&#xff1a;1-2天转载于:https://www.cnblogs.com/wangximing/p/1105562…...

网站建设好如何开通/网络舆情管理

编写以下两个函数 /*以空格(单个或多个)为分隔符&#xff0c;将line中的元素抽取出来&#xff0c;放入一个List*/ public static List<String> convertStringToList(String line) /*在list中移除掉与str内容相同的元素*/ public static void remove(List<String> …...