0

我正在尝试将 Excel 2007 工作簿中的工作表导出到 csv 并将 csv 保存为工作表名称。我不断收到此错误:

"Object of class PHPExcel_Worksheet could not be converted to string in"

这是我的代码:

require_once '../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(false);
//$xlsxfiles=$_SESSION['file'];
//echo $xlsxfiles;
$objPHPExcel = $objReader->load('../upload/Demobook.xlsx');
$num=$objPHPExcel->getSheetCount() ;
$sheetnames=$objPHPExcel->getSheetNames() ;
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)
{
    $worksheet->getTitle();
    $objWriter->setDelimiter(',');
    $objWriter->setEnclosure('');
    $objWriter->setLineEnding("\r\n");
}
$objWriter->save("../"."CSV"."/".$worksheet.".".'csv');
4

1 回答 1

0

你的问题是

$objWriter->save("../"."CSV"."/".$worksheet.".".'csv');

当工作表对象不是字符串而是工作表对象时,您将其视为字符串。你的意思

$objWriter->save("../"."CSV"."/".$worksheet->getTitle().".".'csv');

你为什么要循环设置作者分隔符、附件等的所有工作表;但是在循环之外执行保存?这真的有点没有意义。调用 $worksheet->getTitle(); 在您的循环中也没有太多作用。

于 2012-11-07T21:56:34.047 回答