首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么PhpSpreadsheet无法在public://中识别我的Xlsx文件?

PhpSpreadsheet是一个用于读写电子表格文件的PHP库。它提供了丰富的功能和灵活的API,可以处理各种电子表格文件格式,包括Xlsx。

在Drupal中,public://是一个特殊的文件目录,用于存储公共文件。然而,PhpSpreadsheet默认情况下无法直接识别public://中的Xlsx文件,这是因为PhpSpreadsheet需要一个本地文件路径来读取和写入电子表格文件。

要解决这个问题,可以使用Drupal的文件系统函数将public://路径转换为本地文件路径,然后将该路径传递给PhpSpreadsheet。以下是一个示例代码:

代码语言:txt
复制
use Drupal\Core\StreamWrapper\PublicStream;

// 获取public://路径
$file_uri = 'public://example.xlsx';

// 将public://路径转换为本地文件路径
$file_path = PublicStream::basePath() . '/' . PublicStream::getDirectoryPath() . '/' . \Drupal::service('file_system')->basename($file_uri);

// 使用PhpSpreadsheet读取Xlsx文件
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_path);

// 处理电子表格文件...

在上面的示例中,我们首先使用Drupal的文件系统函数获取public://路径,并将其转换为本地文件路径。然后,我们可以使用PhpSpreadsheet的IOFactory类的load方法来加载Xlsx文件,并进行后续的处理。

需要注意的是,上述代码仅为示例,实际使用时可能需要根据具体情况进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯云对象存储(COS),它是一种高可用、高可靠、低成本的云存储服务,适用于存储和处理各种类型的文件和数据。您可以通过以下链接了解更多关于腾讯云对象存储的信息:腾讯云对象存储(COS)

请注意,以上答案仅供参考,具体解决方案可能因实际情况而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php Spreadsheet Csv,使用 PhpSpreadsheet 实现读取写入 Execl「建议收藏」

大家好,又见面了,是你们朋友全栈君 使用 PhpSpreadsheet 实现读取写入 Execl 由 吴亲库里 创建于1年前, 最后更新于 1年前 版本号 #1 9742 views 1 likes...\PhpSpreadsheet\Spreadsheet; usePhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(...; $writer->save(‘hello world.xlsx’); 读取文件 可以使用PhpSpreadsheetIOFactory识别文件类型并加载它, $inputFileName = ‘....读取文件实例 use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; public function...编辑修改execl 别的方案(暂时没去搭建) 不管你把这个包用再好,你还是不能完美的实现客户端没有安装微软office情况下实现在线查看在线直接编辑文件.看了一些文档查了点资料可以搭建office

3.2K20

解决IDEASpringBoot无法识别.yml文件问题

IDEA关于SpringBootyml文件一写代码就无法运行问题解决(yml文件无法识别的解决) 解决IDEASpringBoot无法识别.yml文件问题 最近学习SpringBoot时,一个小问题困扰了好几天...,直到今天晚上才发现问题所在,高兴同时实在是非常无语。...就是一用yml进行配置时候,springBoot程序就不可以运行了,刚开始是Test测试,然后一直以为是Junit测试问题。...为什么开始想不到是它不能识别呢,1:yml也有代表Spring叶子符号; 2:当我用yml只配置端口时无错,注入值时才报错,要是直接报错或许还能想到。...若是此方法不能添加的话也可在网上自己下载导入 找到需要下载插件下载就好了,下载好了不用解压,不管你是哪个版本,找到下面这句话进行导入 重启之后呢IDEA打开settings-->Editor--

6.9K00
  • phpspreadsheet 读取 Excel 表格问题

    // 获得文件指针位置 $this->cacheKeyDict[$key] = $seek; // 字典登记该键 (键对应键,值为数据文件缓存起始位置) fwrite($fp,...个readXxx函数,如果没有 $reader->setReadDataOnly(true) ,即设置为只读, Xlsx.php 文件 884行 会出现 Illegal offset type...测试,1000行分400行一次,耗时40.4761秒,分240行一次,39.2139秒,分500行一次,39.5506秒,基本上无差别,这似乎表明,时间并不是耗费重复打开解压同一个文件上(Xlsx等带...xOffice文件都是zip文件),而是耗费解析这些单元格上。...—————————————————-2021.10.13 读取上万行 Excel Xlsx文件,还是放弃 PHP 吧,性能太差,菜刀就是“菜”刀,最后还是靠golang搞成csv来解决问题,读取2

    2.6K20

    Hyperf结合PhpOfficePhpSpreadsheet实现Excel&CSV文件导出导入

    ---本文环境 Hyperf2.1,PHP7.3,Mysql5.7\不懂可以评论或联系邮箱:owen@owenzhang.com\著作权归作者所有。...PhpOffice/PhpSpreadsheet 介绍PhpSpreadsheet是一个用纯PHP编写库,它提供了一组类,允许您读取和写入各种电子表格文件格式,如Excel和LibreOffice Calc...masterGitHub PHPOffice/PhpSpreadsheet:用于读取和写入电子表格文件纯PHP库 (github.com)官方使用文档  Welcome to PhpSpreadsheet's...xls后缀excel文件导出heard头:\xls='application/vnd.ms-excel'xlsx后缀excel文件导出heard头:\xlsx='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet...$writer = IOFactory::createWriter($this->spreadsheet, "Xlsx"); //保存到服务器临时文件下 $writer->

    3.8K10

    国产化替代方案_excel表格为什么替换不了

    大家好,又见面了,是你们朋友全栈君。 PHPExcel上一版本1.8.1于2015年发布。该项目已不再维护,可以使用,但是不建议再使用。...\Exception $e) { echo "==Writer异常=="; var_dump($e); die; } 生成hello.xlsx如下 从内存清除工作簿 $spreadsheet...->disconnectWorksheets(); //如果没有这句,直接运行下面那句会报“内存泄漏”错误 unset($spreadsheet); PhpSpreadsheet无法读取和写入持久存储...阅读电子表格(.xlsx文件) $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); $spreadsheet = $reader->load("...内容如下 文件下载 $file_name = date('YmdHis').mt_rand(1000,9999).".xlsx"; // 文件名,07Excel文件后缀xlsx,Excel03版本文件

    1.7K40

    phpspreadsheet中文手册_php file_put_contents

    大家好,又见面了,是你们朋友全栈君。 今天遇到一个问题,涉及 php 与 excel 之间数据转换。之前一直用 PHPExcel,他们开发组不更新了。但是找到了 PhpSpreadsheet。...; writer = new Xlsx(spreadsheet); $writer->save(‘hello world.xlsx’); 实例 包带了实例代码,位置 vendor/phpoffice/...: 这不是加载文件最有效方法, 并且它缺乏文件实际读入 Spreadsheet 对象之前以任何方式配置加载器灵活性。...您无法将多个 CSV 文件加载到同一工作表。...转为数组 文件最后会载入到一个对象称为 spreadsheet 工作表对象,这个对象存放着所以工作表集合信息(数据信息和格式信息、工作表信息等)$spreadsheet = PhpOffice

    5.1K40

    PhpOfficePhpSpreadsheet读取和写入Excel

    使用composer安装: composer require phpoffice/phpspreadsheet 使用 项目目录下新建/public目录,public目录下创建示例文件test.php...$writer->save('hello.xlsx'); 运行代码,你会发现在目录下生成一个hello.xlsx文件,打开Excel文件,你会看到Excel单元格A1有“Welcome to...PhpSpreadsheet特性 支持读取.xls,.xlsx,.html,.csv等格式文件,支持写入导出.xls,.xlsx,.html,.csv,.pdf格式文件。...卓越性能,尤其PHP7上表现优异,比PHPExcel强大很多。 2....使用PhpSpreadsheet将Excel导入到MySQL数据库 导入Excel 思路:使用PhpSpreadsheet读取Excel表格有用信息,然后组装成sql语句,最后批量插入到MySQL表

    6.1K32

    PhpSpreadsheet导出Excel表格,长数字自动转科学计数法

    (单引号英文输入法下输入) 也就是传入data之前先遍历 添加符号 但是这样子我们程序自动导出是不能生效,需要我们再 双击单元格 它才会转成文本形式。...PhpSpreadsheet也有它前驱者PHPExcel一样方式,可以通过setCellValueExplicit指定方案。...\PhpOffice\PhpSpreadsheet\Writer\Exception */ public function down($data) { if (...$startRow)->setValueExplicit($cellValue,'s'); 第二个参数其实也是要传入一个类静态变量,然后追踪了它代码,直接将值给写进去了~ 有兴趣同学可以查看这个类文件...PhpOffice\PhpSpreadsheet\Cell\DataType 里面还有其他几个类型常量列表 // Data types const TYPE_STRING2 = 'str'; const

    4.5K70
    领券