See Release Notes
Long Term Support Release
Differences Between: [Versions 39 and 311] [Versions 39 and 400] [Versions 39 and 401]
1 <?php 2 3 namespace Box\Spout\Writer\Common\Helper; 4 5 /** 6 * Class CellHelper 7 * This class provides helper functions when working with cells 8 */ 9 class CellHelper 10 { 11 /** @var array Cache containing the mapping column index => cell index */ 12 private static $columnIndexToCellIndexCache = []; 13 14 /** 15 * Returns the cell index (base 26) associated to the base 10 column index. 16 * Excel uses A to Z letters for column indexing, where A is the 1st column, 17 * Z is the 26th and AA is the 27th. 18 * The mapping is zero based, so that 0 maps to A, B maps to 1, Z to 25 and AA to 26. 19 * 20 * @param int $columnIndex The Excel column index (0, 42, ...) 21 * @return string The associated cell index ('A', 'BC', ...) 22 */ 23 public static function getCellIndexFromColumnIndex($columnIndex) 24 { 25 $originalColumnIndex = $columnIndex; 26 27 // Using isset here because it is way faster than array_key_exists... 28 if (!isset(self::$columnIndexToCellIndexCache[$originalColumnIndex])) { 29 $cellIndex = ''; 30 $capitalAAsciiValue = ord('A'); 31 32 do { 33 $modulus = $columnIndex % 26; 34 $cellIndex = chr($capitalAAsciiValue + $modulus) . $cellIndex; 35 36 // substracting 1 because it's zero-based 37 $columnIndex = (int) ($columnIndex / 26) - 1; 38 } while ($columnIndex >= 0); 39 40 self::$columnIndexToCellIndexCache[$originalColumnIndex] = $cellIndex; 41 } 42 43 return self::$columnIndexToCellIndexCache[$originalColumnIndex]; 44 } 45 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body