PHP电子表格在浏览器选项卡中显示空白
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(区分大小写)
我用过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(区分大小写)