posso modificare il titolo del foglio di lavoro dopo “aggiungendo” questo foglio di lavoro per cartella di lavoro in Spreadsheet_Excel_Writer?

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

Domanda

il problema è che non posso impostato foglio :: setInputEncoding a un foglio di lavoro che isnt creato, ma ho bisogno di nome del set UTF = formato da 8 a questo foglio di lavoro.

quindi per ora ho ottenuto questo risultato: alcuni simboli illeggibili a titolo del foglio di lavoro.

qualche suggerimento?

È stato utile?

Soluzione

I miei (si spera corrette) risultati:

  • UTF-8 nei nomi di foglio di lavoro è possibile solo in formato BIFF8.
  • Spreadsheet_Excel_Writer_Worksheet costruttore hard-coded UTF-8 come codifica input per il nome del foglio.
  • Ci non è un metodo incorporato per rinominare un foglio di lavoro.

Così ha bisogno di essere attenti a questo:

  1. Set BIFF8 come formato al più presto possibile con \Spreadsheet_Excel_Writer_Workbook::setVersion() (Ci sono benefici aggiunti come limiti del foglio di lavoro estesi):

    $workbook->setVersion(8);
    
  2. Se non si utilizza UTF-8 (per esempio perché è un progetto legacy), convertito nome del foglio di lavoro al momento della creazione del foglio di lavoro:

    $name = iconv('Windows-1252', 'UTF-18', $name);
    $worksheet = $workbook->addWorksheet($name);
    

Se avete bisogno di rinominare un foglio, è necessario comporre il proprio metodo:

// 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

Altri suggerimenti

si potrebbe essere fuori di fortuna lì, sei sicuro formato Biff supporta in realtà caratteri Unicode nel nome del foglio. i nomi dei fogli sono piuttosto restrittive

Ho acceso la maggior parte della mia generazione foglio Excel per uso phpexcel ora, forse che sarà adatto per voi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top