puis-je modifier le titre de feuille après «ajoutant » cette feuille de classeur dans Spreadsheet_Excel_Writer?

StackOverflow https://stackoverflow.com/questions/7802197

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?

Était-ce utile?

La solution

résultats

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:

  1. 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);
    
  2. 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top