PHPSpreadsheet导出Excel超过26列怎么办
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下PHPSpreadsheet导出Excel超过26列怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!excel 行列表示方式xexcel 的列的表示规则从 A,
千家信息网最后更新 2026年11月04日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安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
新华互联网科技
广州万易互联网科技有限公司
科技互联网企业
科技创新与互联网经济
互联网巨头反垄断金融科技
互联网科技作文
致骋互联网科技
凡科互联网科技
互联网金融科技平台
互联网科技logo
广州紫鲸互联网科技
云创客互联网科技公司
栖莱科技互联网股份有限公司
昊天互联网科技有限公司
语蝶互联网科技有限公司
扫呗互联网科技有限公司
珠海东科互联网科技有限公司
长沙易易互联网科技有限公司
互联网大会出现的黑科技
互联网巨头科技公司
互联网科技公司招聘
互联网为啥属于高科技
科技互联网大厂
昭通互联网科技选哪家
华夏互联网科技业
移动互联网年度科技创新
乌苏新华互联网科技做什么的
烟台灵鸽互联网科技有限公司
求路客互联网科技电话