首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Codeigniter 4中实现PhpSpreadsheet

在Codeigniter 4中实现PhpSpreadsheet
EN

Stack Overflow用户
提问于 2021-02-23 14:12:52
回答 2查看 4.1K关注 0票数 1

我是一个真正的初学者,我试图安装PhpSpreadsheet在ThirdParty文件夹中的Codeigniter 4。我在网上找到的指令提到了"composer“,但是我不知道如何运行这个命令(我在Windows 10、XAMPP、Codeigniter 4.1.1和PHP7.3中)。我仍然想手动安装所有的东西。

所以我就这样说:

在PhpSpreadsheet.

  • I文件夹中,我创建了一个PhpOffice文件夹并下载了ThirdParty的内容,然后以这样的方式修改了Autoload.php文件(从codeigniter应用程序/Config文件夹):

公共$psr4 =[

代码语言:javascript
复制
APP_NAMESPACE => APPPATH, // For custom app namespace

'Config'      => APPPATH . 'Config',

'PhpOffice\PhpSpreadsheet' => APPPATH . 'ThirdParty/PhpOffice/PhpSpreadsheet', 

];

然后,我创建了如下所示的Example.php控制器:

代码语言:javascript
复制
<? php
namespace App\Controllers;

use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class Example extends BaseController
{
    public function index ()
    {
        $ spreadsheet = new Spreadsheet ();
    }
}

那么,仅这一行代码就会产生以下错误:

错误

找不到接口'Psr \ SimpleCache \ CacheInterface‘

第13行APPPATH \ ThirdParty \ PhpOffice \ PhpSpreadsheet \ Collection \ Memory.php

我不知道怎么修理。预先感谢所有愿意回答的人

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-23 14:44:25

Php和任何其他库都有一些依赖项(主库中需要的库).So,我们通常使用包管理器,比如Composer (在PHP中)来处理类似的东西。在本例中,Phpoffice告诉您Psr\SimpleCache\CacheInterface是运行某些脚本所需的包。

在所有平台上安装/使用Composer软件包非常容易。安装后,您只需在代码中包含“供应商/Autooload.php”文件,并使用每个已安装的包。

还可以使用$config‘’composer_autoload‘= APPATH。,用于设置您的编写器供应商目录,以便由代码点火器本身自动加载。

要添加phpoffice/phpspreadsheet,只需在下面运行命令,所有依赖项都将自动为您安装。

代码语言:javascript
复制
composer require phpoffice/phpspreadsheet

(供应商是composer包将安装到它上的目录。)

票数 1
EN

Stack Overflow用户

发布于 2021-02-23 17:36:15

好的,我从Codeigniter 4应用程序根目录启动了phpSpreadsheet下载和composer,然后创建了以下控制器:

代码语言:javascript
复制
<?php
namespace App\Controllers;

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;


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

现在看来一切都正常了!不需要编辑其他文件。再次感谢那些回答我的人,这些信息是有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66334823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档