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;
}
}
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.