将工作簿中的工作表导出到phpexcel中的csv

时间:2012-11-07 06:16:19

标签: php csv export phpexcel

我正在尝试将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');

1 个答案:

答案 0 :(得分:0)

你的问题是

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

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

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

为什么要遍历设置编写器分隔符,机箱等的所有工作表;但是在循环之外执行保存?这真的有点无意义。调用$ worksheet-> getTitle();在你的循环中也做不了多少。