如何读取 laravel 中的 xls 文件 - laravel-excel
How to read xls file in laravel - laravel-excel
我正在使用 laravel-excel
库读取 excel 个文件。
http://www.maatwebsite.nl/laravel-excel/docs/import
//http://localhost:8000/assets/panel/excel/test123.xls
$address = URL::to('/assets/panel/excel/').'/test123.xls';
// dd($address);
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
此文件 http://localhost:8000/assets/panel/excel/test123.xls
存在,但出现此错误:
Could not open C:\xampp\htdocs\tahrircenter\http://localhost:8000/assets/panel/excel/test123.xls for reading! File does not exist.
我知道报错的意思,但是我在这个库中如何使用我的地址而不是目录地址呢?
解决方案 1
刚刚测试过,以下应该有效:
// /routes/web.php
Route::get('excel-test', function () {
// http://localhost/assets/panel/excel/test123.xls
// /public/assets/panel/excel/test123.xls
$address = './assets/panel/excel/test123.xls';
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
});
Laravel Excel 基于 PHPExcel 代码 PHPOffice
PHPExcel 文档中的一个示例具有以下代码:
https://github.com/PHPOffice/PHPExcel/blob/1.8/Documentation/Examples/Reader/exampleReader01.php#L29
解决方案 2
您也可以使用 public_path()
Laravel 辅助函数:
Route::get('excel-test', function () {
$address = public_path('assets/panel/excel/test123.xls');
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
});
讨论
生成错误的文件部分:
// /vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5.php
public function canRead($pFilename)
{
// Check if file exists
if (!file_exists($pFilename)) {
throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist.");
}
// ...
}
如您所见,PHPExcel 使用 file_exists()
PHP 函数来检查文件是否存在。 file_exists()
只能检查本地路径,不能检查远程路径 / URL.
我正在使用 laravel-excel
库读取 excel 个文件。
http://www.maatwebsite.nl/laravel-excel/docs/import
//http://localhost:8000/assets/panel/excel/test123.xls
$address = URL::to('/assets/panel/excel/').'/test123.xls';
// dd($address);
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
此文件 http://localhost:8000/assets/panel/excel/test123.xls
存在,但出现此错误:
Could not open C:\xampp\htdocs\tahrircenter\http://localhost:8000/assets/panel/excel/test123.xls for reading! File does not exist.
我知道报错的意思,但是我在这个库中如何使用我的地址而不是目录地址呢?
解决方案 1
刚刚测试过,以下应该有效:
// /routes/web.php
Route::get('excel-test', function () {
// http://localhost/assets/panel/excel/test123.xls
// /public/assets/panel/excel/test123.xls
$address = './assets/panel/excel/test123.xls';
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
});
Laravel Excel 基于 PHPExcel 代码 PHPOffice
PHPExcel 文档中的一个示例具有以下代码: https://github.com/PHPOffice/PHPExcel/blob/1.8/Documentation/Examples/Reader/exampleReader01.php#L29
解决方案 2
您也可以使用 public_path()
Laravel 辅助函数:
Route::get('excel-test', function () {
$address = public_path('assets/panel/excel/test123.xls');
Excel::load($address, function($reader) {
$results = $reader->get();
dd($results);
});
});
讨论
生成错误的文件部分:
// /vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5.php
public function canRead($pFilename)
{
// Check if file exists
if (!file_exists($pFilename)) {
throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist.");
}
// ...
}
如您所见,PHPExcel 使用 file_exists()
PHP 函数来检查文件是否存在。 file_exists()
只能检查本地路径,不能检查远程路径 / URL.