puis-je modifier le titre de feuille après «ajoutant » cette feuille de classeur dans Spreadsheet_Excel_Writer?
-
22-10-2019 - |
Question
le problème est que je ne peux pas mis la feuille de travail :: setInputEncoding à une feuille de calcul qui isnt créé, mais je dois nom du jeu dans utf = 8 format à cette feuille de calcul.
Pour l'instant je me suis ce résultat: certains symboles illisibles dans le titre de feuille de calcul.
suggestions?
La solution
Mes (espérons-le) correct:
- UTF-8 dans les noms de feuille de calcul est possible au format BIFF8.
-
Spreadsheet_Excel_Writer_Worksheet
constructeur UTF-8 comme encodage d'entrée disques codes pour le nom de feuille de calcul. - Il n'y a pas une méthode pour renommer une builtin feuille de calcul.
Ainsi faut faire attention à ceci:
-
Set BIFF8 au format le plus rapidement possible avec
\Spreadsheet_Excel_Writer_Workbook::setVersion()
(il sont des avantages supplémentaires comme des limites de feuille de calcul étendues):$workbook->setVersion(8);
-
Si vous n'utilisez pas UTF-8 (par exemple parce qu'il est un projet existant), le nom de feuille de calcul de conversion lors de la création de feuille de calcul:
$name = iconv('Windows-1252', 'UTF-18', $name); $worksheet = $workbook->addWorksheet($name);
Si vous devez renommer une feuille, vous devez composer votre propre méthode:
// 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
Autres conseils
vous pourriez être hors de la chance là, êtes-vous sûr format biff prend en charge effectivement les caractères unicode dans le nom de la feuille. les noms de feuilles sont assez restrictives
i ont changé la majeure partie de ma génération de feuille Excel à utiliser PHPExcel maintenant, ce sera peut-être approprié pour vous