2012-11-07 93 views
0

我想将Excel 2007工作簿中的工作表导出到csv并将csv保存为工作表名称。我不断收到此错误:将工作簿中的工作表导出到phpexcel中的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'); 

回答

0

你的问题是

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

你处理工作表对象作为字符串,当它不是一个字符串,但工作表对象。 您是不是要找

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

你为什么要通过所有工作表设置作家分隔符,外壳等循环;但在循环之外执行保存?这真的有点毫无意义。调用$ worksheet-> getTitle();在你的循环中也做不了太多。

相关问题