2011-10-18 31 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现在,也许这将是适合你

相关问题