Php WriteExcel - PHP - Programmation
Marsh Posté le 25-01-2007 à 20:41:43
le_marsoin a écrit : Bonjour, |
et avec ça ?
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;
}
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;
}
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.