PhpExcel: Konvertiert eine Nummer (zB. 27) in ExcelSpalte (zB. AA)

edit | delete

Autor: Ingmar Pforr

eingetragen: Dienstag, 28. Mai 2013 um 10:05 Uhr (22/2013 Kalenderwoche)

geändert: Dienstag, 23. März 2021 um 12:24 Uhr (12/2021 Kalenderwoche)

Keywords: PHPOffice PHPExcel Excel2007 xlsx

Kategorien: PHP, PhpOffice,

Text:

How to convert a column number (eg. 27) into an excel column (eg. AA)
PhpExcel: Konvertiert eine Nummer (zB. 27) in ExcelSpalte (zB. AA)


In Version 2 ist auch dokumentiert, ob bei 1 oder 0 angefangen wird.




http://stackoverflow.com/questions/181596/how-to-convert-a-column-...


s. a. Techdox-Artikel 164

Quellcode:  

// ######## Version 1: ###################
/**
 * Gibt die in Excel uebliche Spaltenbennenung anhand der SpaltenZahl zurueck,
 * macht z B aus 27 ein AA.
 * 
 * @param  integer $spaltenNummer
 * @return string  (Buchstabe(n) fuer ExcelSpalten)
 */
public function functionGetExcelColumnName($columnNumber)  {
    $columnName=  '';
    while  ($columnNumber>  0)  {
    	$modulo=  ($columnNumber-  1)  %  26;
    	$columnName=  chr(65  +  $modulo)  .  $columnName;
    	$columnNumber=  (int)(($columnNumber-  $modulo)  /  26);
    }
    return  $columnName;
}

// ######## Version 2: ###################

/**
 * Gibt die in Excel uebliche Spaltenbennenung anhand der SpaltenZahl zurueck,
 * macht z B aus 27 ein AA.
 * 
 * @param  integer $spaltenNummer
 * @return string  (Buchstabe(n) fuer ExcelSpalten)
 */
public function col2SpreadsheetCol($col) {
    $dividend = $col + 1;
    $columnName = '';

    while ($dividend > 0) {
        $modulo = ($dividend - 1) % 26;
        $columnName = chr(65 + $modulo) . $columnName;
        $dividend = (int)(($dividend - $modulo) / 26);
    }

    return $columnName;

    // col2SpreadsheetCol(0) = "A"
    // col2SpreadsheetCol(1) = "B"
    // col2SpreadsheetCol(26) = "AA" 
}