尝试使用变量通过PHPExcel设置工作表名称时,会引发错误。有人可以帮忙吗?
以下是我正在使用的代码部分:
for($i = 0;$i <= 9; $i++){
$objPHPExcel->getActiveSheet()->setCellValue('A1', $i);
$objWorksheet = $objPHPExcel->createSheet();
$objWorksheet->setTitle($i);
$objPHPExcel->setActiveSheetIndex($i);
}
这是错误:
Fatal error: Uncaught exception 'Exception' with message
'Invalid character found in sheet title' in ...Worksheet.php:401
Stack trace:
#0 ...Worksheet.php(657): PHPExcel_Worksheet::_checkSheetTitle(1)
#1 ...JH-auto-sheets.php(37): PHPExcel_Worksheet->setTitle(1)
#2 {main} thrown in ...Worksheet.php on line 401`
答案 0 :(得分:3)
有些字符表示PHPExcel不允许您使用标签标题,即使它本身也允许使用。我遇到过以下字符的问题,并确保我的标题标题不包含这些字符:[]:?!/\*
我通过经验和淘汰过程发现了这一点。可能会有更多的字符会抛出此错误。我还没有找到它们。
答案 1 :(得分:1)
您无法在标题中使用任何这些字符*:/\?[]
。
此外,标题的最大长度为31个字符,因此您也应该检查它。
答案 2 :(得分:0)
array (size=7)
0 => string '*' (length=1)
1 => string ':' (length=1)
2 => string '/' (length=1)
3 => string '\' (length=1)
4 => string '?' (length=1)
5 => string '[' (length=1)
6 => string ']' (length=1)
您不能在参数
中使用它答案 3 :(得分:0)
我刚刚遇到了同样的问题,但能够克服它。
出于某种原因,如果您的变量未明确声明为字符串,setTitle 将抛出异常“在工作表标题中找到无效字符”。
所以,在你的例子中,改变
`$objWorksheet->setTitle($i);`
到
`$objWorksheet->setTitle(strval($i));`