Php WriteExcel

Php WriteExcel - PHP - Programmation

Marsh Posté le 25-01-2007 à 19:08:30    

Bonjour,
 
J'utilise PHP writeExcel, script ki permet de générer des fichiers Excel via PHP (sans COM).
CF : http://www.bettina-attack.de/jonny [...] riteexcel/
Le problème est que la taille des cellules est limitée à 255 caractères.
La version Perl est + récente et elle permet l'insertion de + de 255 caracteres dans une cellule  
CF : http://homepage.eircom.net/~jmcnam [...] l97_7.html
 
Ki pourai retranscrire le code en PHP ? Ou bien me filer un coup de main ?
 
Merci pour votre aide.
Michel.

Reply

Marsh Posté le 25-01-2007 à 19:08:30   

Reply

Marsh Posté le 25-01-2007 à 20:41:43    

le_marsoin a écrit :

Bonjour,
 
J'utilise PHP writeExcel, script ki permet de générer des fichiers Excel via PHP (sans COM).
CF : http://www.bettina-attack.de/jonny [...] riteexcel/
Le problème est que la taille des cellules est limitée à 255 caractères.
La version Perl est + récente et elle permet l'insertion de + de 255 caracteres dans une cellule  
CF : http://homepage.eircom.net/~jmcnam [...] l97_7.html
 
Ki pourai retranscrire le code en PHP ? Ou bien me filer un coup de main ?
 
Merci pour votre aide.
Michel.


et avec ça ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-01-2007 à 01:34:47    

jagstang a écrit :

et avec ça ?


Un demi pour moi garçon :o

Reply

Marsh Posté le 26-01-2007 à 10:41:30    

Ok je vois ke vous etes motivés alors voici le code en PERL, si kkun a une idée :
 
sub write_shared_string {
 
    my $self = shift;
 
    # Check for a cell reference in A1 notation and substitute row and column
    if ($_[0] =~ /^\D/) {
        @_ = $self->_substitute_cellref(@_);
    }
 
    if (@_ < 3) { return -1 }                    # Check the number of args
 
    my $record  = 0x00FD;                        # Record identifier
    my $length  = 0x000A;                        # Bytes to follow
 
    my $row     = $_[0];                         # Zero indexed row
    my $col     = $_[1];                         # Zero indexed column
    my $strlen  = length($_[2]);
    my $str     = $_[2];
    my $xf      = _XF($self, $row, $col, $_[3]); # The cell format
    my $encoding   = 0x00;
 
    my $str_error = 0;
 
    # Check that row and col are valid and store max and min values
    return -2 if $self->_check_dimensions($row, $col);
 
 
    if ($strlen > 32767) {
        $str       = substr($str, 0, 32767);
        $str_error = -3;
    }
 
    if (not exists ${$self->{_str_table}}->{$str}) {
        ${$self->{_str_table}}->{$str} = ${$self->{_str_unique}}++;
    }
 
 
    ${$self->{_str_total}}++;
 
 
    my $header = pack("vv",   $record, $length);
    my $data   = pack("vvvV", $row, $col, $xf, ${$self->{_str_table}}->{$str});
 
    $self->_append($header, $data);
 
    return $str_error;
}

Reply

Marsh Posté le 26-01-2007 à 10:42:22    

et voici ma transcription : Est ce que c'est bon ?
 
function write_shared_string() {
 
    $_=func_get_args();
 
    # Check for a cell reference in A1 notation and substitute row and column
    if (preg_match('/^\D/', $_[0])) {
        $_ = $this->_substitute_cellref($_);
    }
 
    if (sizeof($_) < 3) {      # Check the number of args
        return -1;
    }                  
 
    $record  = 0x00FD;                        # Record identifier
    $length  = 0x000A;                        # Bytes to follow
 
    $row     = $_[0];                         # Zero indexed row
    $col     = $_[1];                         # Zero indexed column
    $strlen  = strlen($_[2]);
    $str     = $_[2];
    $xf      = $this->_XF($row, $col, $_[3]); # The cell format
    $encoding   = 0x00;
 
    $str_error = 0;
 
    # Check that row and col are valid and store max and min values
    if ($this->_check_dimensions($row, $col)==false)
 return -2;
 
 $str = pack('vC', $strlen, $encoding).$str;
 
    if ($strlen > 32767) {
        $str       = substr($str, 0, 32767);
        $str_error = -3;
    }
 
    if (!isset ($this->_str_table[$str])) {
        $this->_str_table[$str] = $this->_str_unique++;
    }
 
 
    $this->_str_total++;
 
 
    $header = pack("vv",   $record, $length);
    $data   = pack("vvvV", $row, $col, $xf, $this->_str_table[$str]);
 
    $this->_append($header . $data);
 
    return $str_error;
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed