Convertir les références de colonne excel de chiffre en lettre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 659 fois - Téléchargée 15 fois

Contenu du snippet

J'ai eu besoin de créer des tableau à l'aide de classes spécifique qui ne travaillaient qu'avec les positions numérique des cellules

Ex : La colonne 'A1' correspond à la position 11

j'ai donc eu besoin de convertir les lettre en chiffre.

Cette fonction gère les $, et effecture l'opération inverse automatiquement, si vous rentrez des chiffres elle les convertit en lettre et inversement

Exemple :
xlColumnValue("CD") retourne : 82
xlColumnValue("335") retourne : LW

Je me suis inspiré d'une version écrite en Visual Basic et je l'ai "convertit" en PHP

Source : http://www.vbfrance.com/codes/EXCEL-CONVERTIR-COLONNE-CHIFFRE-CARACTERE_2011.aspx

Havefun

Source / Exemple :


Function xlColumnValue($strColumnIndex){
/*
' ------------------------------------------------------------------------------
'
' These function changes the Column Number of a cell in character(s)
' or vice versa.
'
' Return: Column Number or Character
'
' TALBI Anis - 04-2009 - msdos@free.fr
'
' ------------------------------------------------------------------------------

  • /
$strColumnIndex = strtoupper($strColumnIndex); // Suppression des $ si présent if (strpos($strColumnIndex,"\$")>=0){ $strColumnIndex = ereg_replace("\\$","",$strColumnIndex); } switch (ord($strColumnIndex)){ Case 48: // 0 in first character Return FALSE; break; Case (ord($strColumnIndex)>=49 and ord($strColumnIndex)<=57): // Number to Char If ($strColumnIndex<27){ $xlColumnValue = Chr($strColumnIndex + 65 - 1); }Else{ If ($strColumnIndex % 26 <> 0) { $xlColumnValue = Chr($strColumnIndex / 26 + 65 - 1) . Chr($strColumnIndex % 26 + 65 - 1); }Else{ $xlColumnValue = Chr($strColumnIndex / 26 + 65 - 2) . Chr(90); } } return $xlColumnValue; break; Case (ord($strColumnIndex)>=65 and ord($strColumnIndex)<=90): // Char To Number $xlColumnValue = ord($strColumnIndex) - 65 + 1; If (strlen($strColumnIndex) > 1){ $xlColumnValue = ($xlColumnValue * 26) + (ord(substr($strColumnIndex, -1)) - 65 + 1); } return $xlColumnValue; break; default: return false; break; } }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.