使用PHPExcel下载Excel文件

使用PHPExcel下载Excel文件,php,phpexcel,Php,Phpexcel,我正在尝试使用PHPExcel下载excel文件,这就像很好地下载excel文件一样,但excel文件中的数据都是垃圾。。这不是我所期望的。我通过了非常基本的方法来测试我的excel工作表数据输出 这是我正在尝试的代码 else if($request->p['type'] == 'excel') { $report_type_name = "Graph Survey Report"; $ExcelReport = new ExcelApExpor

我正在尝试使用PHPExcel下载excel文件,这就像很好地下载excel文件一样,但excel文件中的数据都是垃圾。。这不是我所期望的。我通过了非常基本的方法来测试我的excel工作表数据输出

这是我正在尝试的代码

else if($request->p['type'] == 'excel')
    {

        $report_type_name = "Graph Survey Report";
        $ExcelReport = new ExcelApExport($sections, $group_definition, $questions,    $sample_corrections);
        $objPHPExcel = $ExcelReport->export($sets, $disp_filter);
        header('Content-Type: application/vnd.ms-excel');

        header("Content-Disposition: attachment; "
            . escape_for_content_disposition("{$report_name} - {$report_type_name} - " . date("Y-m-d.H.i") . ".xls"));
        header('Cache-Control: max-age=0');

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

        $objWriter->save('php://output');

        exit;
    }
我还在这里创建对象并在这里调用phpexcel方法

public function export($Sets, $disp_filter)
 {

    $objPHPExcel = new PHPExcel();
    $objPHPExcel->getProperties()->setTitle("Offic excel Test Document");
    $objPHPExcel->getProperties()->setSubject(" Test Document");
    $objPHPExcel->getProperties()->setDescription("Test document for  XLS, generated using PHP     classes.");
    //echo date('H:i:s') . " Add some data\n";
    $objPHPExcel->setActiveSheetIndex(0);
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
     $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
    $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
   $objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');

    return $objPHPExcel;

}

请你告诉我为什么这些垃圾数据显示在我的文件中,而不是预期的数据。 提前谢谢

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
这是.xlsx文件的编写器。(见:)

因此,正确的标题应该是:

// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; "
        . escape_for_content_disposition("{$report_name} - {$report_type_name} - " . date("Y-m-d.H.i") . ".xlsx")); //.xlsX!
旧.xls文件的编写器是:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
见:

这是.xlsx文件的编写器。(见:)

因此,正确的标题应该是:

// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; "
        . escape_for_content_disposition("{$report_name} - {$report_type_name} - " . date("Y-m-d.H.i") . ".xlsx")); //.xlsX!
旧.xls文件的编写器是:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
见:

这是.xlsx文件的编写器。(见:)

因此,正确的标题应该是:

// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; "
        . escape_for_content_disposition("{$report_name} - {$report_type_name} - " . date("Y-m-d.H.i") . ".xlsx")); //.xlsX!
旧.xls文件的编写器是:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
见:

这是.xlsx文件的编写器。(见:)

因此,正确的标题应该是:

// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; "
        . escape_for_content_disposition("{$report_name} - {$report_type_name} - " . date("Y-m-d.H.i") . ".xlsx")); //.xlsX!
旧.xls文件的编写器是:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
请参阅:

它基本上需要

ob_clean()

在保存对象之前

基本上需要

ob_clean()

在保存对象之前

基本上需要

ob_clean()

在保存对象之前

基本上需要

ob_clean()


在保存对象之前

我最近遇到了这个问题,并在这里找到了另一个帖子,如果你在使用ob_clean()后仍然存在这个问题,这将非常有帮助


我最近遇到了这个问题,并在这里找到了另一篇文章,如果您在使用ob_clean()后仍然存在问题,这篇文章将非常有用


我最近遇到了这个问题,并在这里找到了另一篇文章,如果您在使用ob_clean()后仍然存在问题,这篇文章将非常有用


我最近遇到了这个问题,并在这里找到了另一篇文章,如果您在使用ob_clean()后仍然存在问题,这篇文章将非常有用



几乎可以肯定,因为脚本中的某些内容在文件保存到之前输出了一个空白字符(可能是新行)php://outputi 没有得到我正在添加任何空白的代码部分,请你建议我可以在代码中去哪里修复它我不知道。。。。除了您发布的两个小方法之外,我看不到您的代码。。。。如果你一定要这么做的话,试着在保存之前做一个ob_clean()太棒了!!!!那起作用了。。。天哪,除了这个小玩意儿,我什么都试过了……:P非常感谢:):)注意,使用ob_clean()确实是一个解决办法;在脚本中的任何位置定位实际的换行符应该是更好的解决方案,但我知道这并不总是容易的,因为脚本中的某些内容在文件保存到之前输出了一个空白字符(可能是新行)php://outputi 没有得到我要添加空白的代码部分,你能告诉我在代码中我可以去哪里修复它吗我不知道。。。。除了您发布的两个小方法之外,我看不到您的代码。。。。如果你一定要这么做的话,试着在保存之前做一个ob_clean()太棒了!!!!那起作用了。。。天哪,除了这个小玩意儿,我什么都试过了……:P非常感谢:):)注意,使用ob_clean()确实是一个解决办法;在脚本中的任何位置定位实际的换行符应该是更好的解决方案,但我知道这并不总是容易的,因为脚本中的某些内容在文件保存到之前输出了一个空白字符(可能是新行)php://outputi 没有得到我要添加空白的代码部分,你能告诉我在代码中我可以去哪里修复它吗我不知道。。。。除了您发布的两个小方法之外,我看不到您的代码。。。。如果你一定要这么做的话,试着在保存之前做一个ob_clean()太棒了!!!!那起作用了。。。天哪,除了这个小玩意儿,我什么都试过了……:P非常感谢:):)注意,使用ob_clean()确实是一个解决办法;在脚本中的任何位置定位实际的换行符应该是更好的解决方案,但我知道这并不总是容易的,因为脚本中的某些内容在文件保存到之前输出了一个空白字符(可能是新行)php://outputi 没有得到我要添加空白的代码部分,你能告诉我在代码中我可以去哪里修复它吗我不知道。。。。除了您发布的两个小方法之外,我看不到您的代码。。。。如果你一定要这么做的话,试着在保存之前做一个ob_clean()太棒了!!!!那起作用了。。。天哪,除了这个小玩意儿,我什么都试过了……:P非常感谢:):)注意,使用ob_clean()确实是一个解决办法;在脚本中的任何位置定位实际的换行符都应该是更好的解决方案,但我知道这两组代码并不总是那么容易:1。xlsx扩展名在一个标题中,Excel2007在createWriter中,这给了我xlsx文件,它没有在Excel中打开,我通过文本编辑器打开了它,它再次有所有的垃圾写在里面,不是我期望的文本。2.我还尝试了一组Excel5和xls扩展,这给了我上面的结果。xlsx扩展名在一个标题中,Excel2007在createWriter中,这给了我xlsx文件,它没有在Excel中打开,我通过文本编辑器打开了它,它再次有所有的垃圾写在里面,不是我期望的文本。2.我还尝试了一组Excel5和xls扩展,这给了我上面的结果。xlsx扩展名在一个标题中,Excel2007在createWriter中,这给了我xlsx文件,它没有在Excel中打开,我通过文本编辑器打开了它,它再次有所有的垃圾写在里面,不是我期望的文本。2.我还尝试了一组Excel5和xls扩展,这给了我上面的结果。使用xlsx扩展