問題是我不能將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現在,也許這將是適合你