PHPExcel - 变量无效的setTitle

时间:2011-09-06 16:09:56

标签: variables phpexcel

尝试使用变量通过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`

4 个答案:

答案 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));`