PHPSpreadsheet导出Excel超过26列怎么办
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下PHPSpreadsheet导出Excel超过26列怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!excel 行列表示方式xexcel 的列的表示规则从 A,
千家信息网最后更新 2025年11月15日PHPSpreadsheet导出Excel超过26列怎么办
小编给大家分享一下PHPSpreadsheet导出Excel超过26列怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
excel 行列表示方式
xexcel 的列的表示规则从 A,B,C 一直到 Z,当超过 26 个字母的时候用两个字母进行表示:AA,AB,AC…AZ,BA,BB,BC…BZ…,当超过 702 时又是另外一个种表示方法。
行的表示就是 1,2,3,4,5,6,7…. 这样下去。在 phpexcel 中要设一个单元格的值通过 setCellValue 方法就可以了,其中第一个参数表示列和行的拼接的值,如:A1,B1,AA1,BA1 这样。
知道这个之后,只要根据 $i/26 的整数部分和模部分计算出列的表示字母就可以了。
下面是解决方法
data_type= $data_type; $this->spread_sheet= $spread_sheet; $this->x_lsx= $x_lsx; } /** * @ description 文件导出 * @ date 2019-05-06 * @ array $field_name 字段名称 汉字(索引数组) ['产品','姓名'] * @ array $data 数据 ['a' => data, 'b' => data] * @ array $field_column 数据中的下标名称 字段数据 (索引数组) ['a','b'] * @ string $file_name 文件名称 * @ array $arr 需要转换为数字的$field_column中的key(索引数组) * @ return file */ public function export($field_name,$data,$field_column,$file_name,$field_numeric_keys= []) { @ob_clean(); if (empty($field_name)|| empty($field_column)|| empty($data)|| empty($file_name))return false; $sheet= $this->spread_sheet->getActiveSheet(); //设置header $i= 0; foreach ($field_name as $value) { $cellName= self::stringFromColumnIndex($i). "1"; $sheet->setCellValue($cellName, $value)->calculateColumnWidths(); $sheet->getColumnDimension(self::stringFromColumnIndex($i))->setWidth(15); $i++; } //设置value $len= count($field_column); foreach ($data as $key=> $item) { $row= 2 + ($key* 1); for ($i= 0; $i< $len; $i++) { $sheet->setCellValueExplicit(self::stringFromColumnIndex($i). $row, $item[$field_column[$i]]??"", DataType::TYPE_STRING); if (isset($item[$field_column[$i]])&& !empty($field_numeric_keys)&& in_array($field_column[$i],$field_numeric_keys)) { $sheet->setCellValueExplicit(self::stringFromColumnIndex($i). $row, $item[$field_column[$i]]??"", DataType::TYPE_NUMERIC); } } } $writer= new Xlsx($this->spread_sheet); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器输出07Excel文件 header('Content-Disposition: attachment;filename="' . $file_name . '.xlsx"');//告诉浏览器输出浏览器名称 header('Cache-Control: max-age=0'); $writer->save('php://output'); @ob_flush(); @flush(); exit; } /** * @ description excel导出突破只能26个字段 * @ date 2019-05-07 * @ return string 字段 */ public static function stringFromColumnIndex($pColumnIndex = 0) { static $_indexCache= array(); if (!isset($_indexCache[$pColumnIndex])) { if ($pColumnIndex < 26) { $_indexCache[$pColumnIndex]= chr(65 + $pColumnIndex); }elseif ($pColumnIndex < 702) { $_indexCache[$pColumnIndex]= chr(64 + ($pColumnIndex / 26)). chr(65 + $pColumnIndex % 26); }else { $_indexCache[$pColumnIndex]= chr(64 + (($pColumnIndex - 26)/ 676)). chr(65 + ((($pColumnIndex - 26)% 676)/ 26)). chr(65 + $pColumnIndex % 26); } } return $_indexCache[$pColumnIndex]; }}看完了这篇文章,相信你对"PHPSpreadsheet导出Excel超过26列怎么办"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
名称
字段
字母
数据
数组
文件
方法
浏览器
索引
浏览
怎么办
篇文章
部分
输出
下标
两个
产品
单元
参数
又是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库如何预防泄露
备案需要和服务器在一起嘛
盐城华为网络安全
网站租服务器价格
广州前端软件开发有用吗
阳光保险网络安全招聘
福音网络技术
搜索功能数据库怎么弄
学网络技术要准备什么
中小企业管理软件开发公司
我的世界国际服好玩服务器地址
服务器自动更新杀毒补丁
苹果公司网络安全
lol服务器连接超时是怎么回事
上海通信网络技术产品
服务器性能优化方案
永劫无间服务器在电信吗
腐蚀 数据库
指纹采集输出数据库
随着网络技术不断深入人心英语
备案需要和服务器在一起嘛
网络安全防范宣传动画
全球军事火力数据库
轻云服务器和阿里云
常用的数据库安全加密方式
游戏服务器迁移是怎么回事
快速网络技术加盟注意哪些
京豆代挂服务器地址
小班网络安全教育教案活动
六安二手服务器回收咨询客服