我正在尝试将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');
答案 0 :(得分:0)
你的问题是
$objWriter->save("../"."CSV"."/".$worksheet.".".'csv');
当工作表对象不是字符串而是工作表对象时,您将工作表对象视为字符串。 你的意思是
$objWriter->save("../"."CSV"."/".$worksheet->getTitle().".".'csv');
为什么要遍历设置编写器分隔符,机箱等的所有工作表;但是在循环之外执行保存?这真的有点无意义。调用$ worksheet-> getTitle();在你的循环中也做不了多少。