-1

我正在尝试将 Box/Spout 实施到我的项目中,并且我想导出一些数据。问题是,当我尝试制作一个测试文件以下载它时它不起作用,它只是一个简单的白页,并且没有触发 .xlsx 下载。

下面是我的代码:

<?php

require_once 'vendor/box/spout/src/Spout/Autoloader/autoload.php';

use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Box\Spout\Common\Entity\Row;

function xlsx(){
    $writer = WriterEntityFactory::createXLSXWriter();
    // $writer = WriterEntityFactory::createODSWriter();
    // $writer = WriterEntityFactory::createCSVWriter();
    $writer->setShouldUseInlineStrings(true); // default (and recommended) value

    $writer->setTempFolder($customTempFolderPath);

    $fileName = 'test.xlsx';

    // $writer->openToFile($filePath); // write data to a file or to a PHP stream
    $writer->openToBrowser($fileName); // stream data directly to the browser

    $cells = [
        WriterEntityFactory::createCell('Carl'),
        WriterEntityFactory::createCell('is'),
        WriterEntityFactory::createCell('great!'),
    ];

    /** add a row at a time */
    $singleRow = WriterEntityFactory::createRow($cells);
    $writer->addRow($singleRow);

    /** add multiple rows at a time */
    $multipleRows = [
        WriterEntityFactory::createRow($cells),
        WriterEntityFactory::createRow($cells),
    ];
    $writer->addRows($multipleRows); 

    /** Shortcut: add a row from an array of values */
    $values = ['Carl', 'is', 'great!'];
    $rowFromValues = WriterEntityFactory::createRowFromArray($values);
    $writer->addRow($rowFromValues);

    $writer->close();

}

这是取自官方文档的示例:https ://opensource.box.com/spout/

有什么我错过的吗?我做错了什么?

4

1 回答 1

-2

对我来说看起来不错。您只需xlsx()要从 index.php 调用该函数即可实际触发下载。

要测试它是否真的有效,只需将xlsx()函数的内容直接移动到 index.php 中即可;这可能有助于调试您的问题

于 2020-01-22T09:44:38.693 回答