Kann ich den Titel des Arbeitsblatts ändern, nachdem ich dieses Arbeitsblatt in die Arbeitsmappe in der Tabelle_Excel_Writer „hinzufügen“?
-
22-10-2019 - |
Frage
Das Problem ist, dass ich das Arbeitsblatt :: setInpUTCoding nicht auf ein Arbeitsblatt einstellen kann, das nicht erstellt wird, aber ich muss den Namen im UTF = 8 -Format für dieses Arbeitsblatt festlegen.
Im Moment habe ich dieses Ergebnis erhalten: einige unlesbare Symbole im Arbeitsblatt -Titel.
irgendwelche Vorschläge?
Lösung
Meine (hoffentlich korrekten) Ergebnisse:
- UTF-8 in Arbeitsblattnamen ist nur im BIFF8-Format möglich.
Spreadsheet_Excel_Writer_Worksheet
Konstruktor-Hardcodes UTF-8 als Eingabecodierung für Arbeitsblattnamen.- Es gibt keine integrierte Methode, um ein Arbeitsblatt umzubenennen.
Daher müssen Sie vorsichtig sein:
Setzen Sie Biff8 so schnell wie möglich als Format mit
\Spreadsheet_Excel_Writer_Workbook::setVersion()
(Es gibt zusätzliche Vorteile wie erweiterte Arbeitsblattgrenzen):$workbook->setVersion(8);
Wenn Sie UTF-8 nicht verwenden (z. B. weil es sich um ein Legacy-Projekt handelt), konvertieren Sie den Arbeitsblattnamen bei der Erstellung der Arbeitsblatt:
$name = iconv('Windows-1252', 'UTF-18', $name); $worksheet = $workbook->addWorksheet($name);
Wenn Sie ein Blatt umbenennen müssen, müssen Sie Ihre eigene Methode komponieren:
// Disclaimer: not fully tested code; shared for illustration purposes
/* @var $workbook Spreadsheet_Excel_Writer_Workbook */
/* @var $worksheet Spreadsheet_Excel_Writer_Worksheet */
$name = iconv($input_encoding, 'UTF-16LE', $name);
foreach($workbook->_worksheets as $c => $v){
if($v->getName()===$name){
throw new LogicException("New name is already in use: $name");
}
}
$worksheet->name = $name;
$workbook->_sheetnames[$worksheet->index] = $name; // Store EXTERNSHEET names
$workbook->_parser->setExtSheet($name, $worksheet->index); // Register worksheet name with parser
Andere Tipps
Sie könnten dort kein Glück haben. Sind Sie sicher, dass das Biff -Format Unicode -Chars im Blattnamen tatsächlich unterstützt. Die Blattnamen sind ziemlich restriktiv
Ich habe den größten Teil meiner Excel -Blatt -Generation umgeführt, um PHPexcel jetzt zu verwenden, vielleicht ist das für Sie geeignet