簡體   English   中英

PHPspreadsheet在瀏覽器選項卡中顯示為空白

[英]PHPspreadsheet show blank in browser tab

我已經使用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');
       }
   }

任何人都可以幫忙嗎?

您擁有的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將其上傳到您的心中。 希望這可以幫助。

希望這個能對您有所幫助 :

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

class Reports extends Admin_Controller
{

  public function index()
  {
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello World !');

    $spreadsheet->setActiveSheetIndex(0);

    $filename = 'hello world';

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
    header('Cache-Control: max-age=0');

    $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');

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

對於csv,只需將擴展名.xlsx更改為.csv(區分大小寫)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM