2011-10-18 74 views

回答

0

我(希望是正確的)結論:

  • UTF-工作表名稱中的8只能用BIFF8格式。
  • Spreadsheet_Excel_Writer_Worksheet構造函數硬編碼UTF-8作爲工作表名稱的輸入編碼。
  • 沒有內置方法來重命名工作表。

因此需要小心這一點:作爲格式儘快與\Spreadsheet_Excel_Writer_Workbook::setVersion()(如擴展工作範圍也正在增加的好處)

  1. 集BIFF8:

    $workbook->setVersion(8); 
    
  2. 如果您未使用UTF-8(例如,因爲它是一個傳統項目),請在創建工作表時轉換工作表名稱:

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

如果您需要重命名一個表,你需要撰寫自己的方法:

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

你可能在這裏運氣不好,你確定biff格式實際上在表名中支持unicode字符。工作表名稱是相當嚴格的

我轉我的大部分excel表格一代使用phpexcel現在,也許這將是適合你

相關問題