Mira en el foro habia dejado esto para excel :
Código PHP:
Ver original<?php
class ColumnasExcel
{
/**
* Contiene Los caracteres con los que se formaran la cadena final.
* @var string
*/
private $_cadenaSalida = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
/**
* Contiene el Tamaño de la cadena de caracteres de salida.
* @var integer
*/
private $_largo;
/**
* Constructor de Clase
* @param string $cadenaSalida Si se quiere una cadena distinta a las letras de Excel
* Se puede Configurar aqui o con el metodo setCadenaSalida.
*/
public function __construct($cadenaSalida = '')
{
if (!empty($cadenaSalida)) { $this->_cadenaSalida = $cadenaSalida;
}
$this->_largo
= strlen($this->_cadenaSalida
); }
/**
* Configura una Nueva cadena de Salida.
* @param string $cadenaSalida Configura una nueva cadena de salida.
*/
public function setCadenaSalida($cadenaSalida)
{
$this->_cadenaSalida = $cadenaSalida;
$this->_largo
= strlen($this->_cadenaSalida
); }
/**
* Convierte un Entero a Una Cadena de Letras.
* @param integer $numero Numero a Convertir
* @return string
*/
function getNumeroALetra($numero)
{
$cadena = '';
do {
$entero = (int)( $numero / $this->_largo );
$resto = ( $numero % $this->_largo );
//$cadena = chr(65 + $resto) . $cadena;
$cadena = substr($this->_cadenaSalida
, $resto,1) . $cadena;
$numero = $entero - 1 ;
} while ($entero);
return $cadena;
}
/**
* Cantidad Maxima de letras en el resultado Final
* @param integer $max Maxima cantidad de caracteres del resultado
* @return integer
*/
public function tamanioMaximoCadena($max)
{
$resultado = 0;
for ($i=1; $i <= $max; $i++) {
$resultado+= bcpow($this->_largo
, $i); }
return ($resultado - 1);
}
}
// Creo una instancia del objeto
$obj = new ColumnasExcel();
// Veo cuantos caracteres como maximo tenga la cadena de salida
$iteraciones = $obj->tamanioMaximoCadena(3);
$inicio = $obj->tamanioMaximoCadena(2)+1;
for ($i=$inicio; $i <= $iteraciones; $i++)
{
echo $obj->getNumeroALetra($i) . '<br>';
}
Saludos
http://www.forosdelweb.com/f18/strin...etras-1020133/