PHPspreadsheet在浏览器选项卡中显示为空白

时间:2018-04-12 10:38:00

标签: php codeigniter phpspreadsheet

我已经使用https://github.com/PHPOffice/phpspreadsheet这个包下载了 codeigniter中的csv文件

当我尝试下载时,它会在浏览器标签中显示空白而不显示下载选项

没有错误

尝试使用以下代码

   <?php
   if (!defined('BASEPATH')) exit('No direct script access allowed');

   require 'vendor/autoload.php';
   use PhpOffice\PhpSpreadsheet\Spreadsheet;
   use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

   class Reports extends Admin_Controller
   {
       public function download()
       {
             $spreadsheet = new Spreadsheet();
             $sheet = $spreadsheet->getActiveSheet();
             $sheet->setCellValue('A1', 'Hello World !');
             $writer = new Xlsx($spreadsheet);
             $writer->save('hello world.xlsx');
       }
   }

任何人都可以提供帮助吗??谢谢

2 个答案:

答案 0 :(得分:0)

您拥有的download()函数仅用于编写新文件。与下载文件无关。但是我设法在这里使用此代码输出文件。我输出了一个csv文件,所以我可以在我的服务器上更容易地检查它,但前提是xlsx文件仍然相同。

public function writeFile() {
            $this->load->library('Spreadsheet'); 
            $output_file = getcwd() . "/test/hello_world.csv";
            $spreadsheet = new Spreadsheet();
            $spreadsheet->setActiveSheetIndex(0);
            $spreadsheet->getActiveSheet()->setCellValueByColumnAndRow("1", "1", "Hello World!");
            $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Csv');
            $writer->save($output_file);
        }

我认为你的部分问题是没有使用CodeIgniter命名法正确加载库。如果您尝试上传文件,我会建议您使用CodeIgniter附带的上传库。可以在此处找到文档:https://www.codeigniter.com/userguide3/libraries/file_uploading.html

我会在上传后使用phpspreadsheet将其编辑到您的内容中。希望这会有所帮助。

答案 1 :(得分:0)

希望这会对您有所帮助:

DECLARE @DATE DATETIME, @DAYS_EXTEND INT, @HOLIDAYS VARCHAR(100) , @COUNTER INT

--ARGUMENTS
SET @DATE = '2018-04-12'
SET @DAYS_EXTEND  = 3
SET @HOLIDAYS  = 'SAT,SUN'   --REQUIRED OFF DAYS LIST COMM SEPERATED
------------------------------------

    SET @COUNTER = @DAYS_EXTEND  
    WHILE @COUNTER > 0 
    BEGIN

        SET @COUNTER = @COUNTER -1
        SET @DATE  = @DATE +1

        IF  @HOLIDAYS  LIKE '%'+LOWER(LEFT(DATENAME(DW,@DATE) ,3))+'%'  
        BEGIN
            SET @DAYS_EXTEND = @DAYS_EXTEND +1
            SET @COUNTER = @COUNTER +1;
        END
    END
    SELECT @DATE AS 'DATE_AFTER_EXTENDED_BUSINESS_DAYS'

对于csv只需将exxion .xlsx更改为.csv(区分大小写)