对象类无法转换为字符串错误。

3

我将尝试在我的index.xlsx工作表中导入数据库值,因此我编写了一个使用phpExcel进行导入的代码。

Index.php

<?php
require_once 'E:\Xampp\htdocs\Excel\Classes\phpExcel.php';
$con = mysql_connect('localhost','root','');
mysql_select_db('khader',$con);
$sql = "SELECT * FROM person";
$result = mysql_query($sql);
$filename = "index.xlsx";
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader ->setReadDataOnly(true);
$objReader ->$objReader->load($filename);
$objWorksheet ->$objPHPExcel->getActiveSheet();
$objWorksheet->$objPHPExcel->setActiveSheetIndex(0);
echo " <form method='post'>
<input type='submit' value='Convert' name='submit'>
</form>";
if(isset($_POST['submit']))
{
    $col = 1;
    while($rows = mysql_fetch_row($result))
    {
     $row = 1 ;
        foreach($rows as $value )
        {
            $objPHPExcel ->getActivesheet()->setCellValueByColumnAndRow($col,$row,$value);
            $objPHPExcel ->getActivesheet()->getColumnDimension('A')->SetAutoSize(true);
            $objPHPExcel ->getActivesheet()->getColumnDimension('B')->SetAutoSize(true);
            $objPHPExcel ->getActivesheet()->getColumnDimension('C')->SetAutoSize(true);
            $objPHPExcel ->getActivesheet()->getColumnDimension('D')->SetAutoSize(true);
            $objPHPExcel ->getActivesheet()->getColumnDimension('E')->SetAutoSize(true);
            $row++;











        }
        $col++;









    }









echo "imported";
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(index.xlsx);



?>

当我运行程序index.php时,出现了一个错误。

Catchable fatal error: Object of class PHPExcel_Reader_Excel2007 could not be converted to string in E:\Xampp\htdocs\Example\index.php on line 10

有人可以帮我吗?谢谢!

这是关于IT技术的问题。
2个回答

1
正如错误信息所说,在第10行。
$objReader ->$objReader->load($filename);

应该是

$objPHPExcel=$objReader->load($filename);

仍然存在错误,提示未定义变量:objPHPExcel。 - Khader
@Khader,我认为这个变量是第10行的返回值,就像我在答案中更新的那样。我建议你阅读一下php-excel库的文档。 - Young

1
你也不需要指定任何阅读器。它会根据你的文件类型自动获取。
$objPHPExcel  = PHPExcel_IOFactory::load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();

保存文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="yourfile.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');

下一个错误是 $objWriter->save(index.xlsx); 应该是 $objWriter->save($filename); - venca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接