为了账号安全,请及时绑定邮箱和手机立即绑定

如何为 Xlsx 文件生成 pCoordinates

如何为 Xlsx 文件生成 pCoordinates

PHP
慕神8447489 2022-12-23 12:05:04
我想为此生成坐标 $sheet->setCellValue($pCoordinate, $pValue);$pCoodrinates 是一个字母,然后是一个数字,如 A1、B1、C1,例如第一行,然后下一行是 A2、B2、C2,下一行是 3这是我现在拥有的代码class SpreadSheetHelper{    private static $alphabet = 'ABCDEFGHIJKLMNOPQRSTUYVWXYZ';    public static function createSpreadSheet($data = []) {        $spreadsheet = new Spreadsheet();        $sheet       = $spreadsheet->getActiveSheet();        foreach ($data as $rowIndex => $row) {            foreach ($row as $columnIndex => $columnValue) {                $pCoordinate = self::getAlphabetCoordinate($rowIndex, $columnIndex);                $pValue = $columnValue;                $sheet->setCellValue($pCoordinate, $pValue);            }        }        return $spreadsheet;    }    private static function getAlphabetCoordinate($rowIndex, $columnIndex) {        $letter = strtoupper(substr(self::$alphabet, $columnIndex, 1));        $number = $rowIndex + 1;        return "$letter$number";    }}如您所见, $alphabet 是硬编码的并且是有限的,它到达最后一个字母,它应该以 AA, AB, AC,AD,AE,AF 开头,这就是我想要生成的。知道怎么做吗?
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您可以利用 ASCII 表:


<?php

//Number of rows and columns

$rows = 3;

$cols = 40;


$pcoords = array();

for($current_row=1;$current_row<$rows+1;$current_row++) {

    $alpha_index = 65;

    $alpha_pref_index = 65;

    $alpha_count = 0;

    $pref_letter = '';


    for($current_col=0;$current_col<$cols;$current_col++) {

        $col_letter = chr($alpha_index);

        $pcoords[] = $pref_letter . $col_letter. $current_row;

        $alpha_count++;

        if ($alpha_count == 26) {

            $alpha_count = 0;

            $alpha_index = 65;

            $pref_letter = chr($alpha_pref_index);     

            $alpha_pref_index++;               

        }

        else {

            $alpha_index++;            

        }        

    }    

}


echo '<pre>';

print_r($pcoords);

echo '</pre>';


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信