问题是我不能将Worksheet :: setInputEncoding设置为未创建的工作表,但我需要以utf = 8格式将名称设置为此工作表。我可以在spreadsheet_excel_writer“将此工作表添加到工作簿”后修改工作表的标题吗?
所以现在我得到了这个结果: 工作表标题中的一些不可读的符号。
有什么建议吗?
问题是我不能将Worksheet :: setInputEncoding设置为未创建的工作表,但我需要以utf = 8格式将名称设置为此工作表。我可以在spreadsheet_excel_writer“将此工作表添加到工作簿”后修改工作表的标题吗?
所以现在我得到了这个结果: 工作表标题中的一些不可读的符号。
有什么建议吗?
我(希望是正确的)结论:
Spreadsheet_Excel_Writer_Worksheet
构造函数硬编码UTF-8作为工作表名称的输入编码。因此需要小心这一点:作为格式尽快与\Spreadsheet_Excel_Writer_Workbook::setVersion()
(如扩展工作范围也正在增加的好处)
集BIFF8:
$workbook->setVersion(8);
如果您未使用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
你可能在这里运气不好,你确定biff格式实际上在表名中支持unicode字符。工作表名称是相当严格的
我转我的大部分excel表格一代使用phpexcel现在,也许这将是适合你