有没有一个类只用于使用 Laravel Excel 读取 excel 文件?

Is there a class just for reading excel file using Laravel Excel?

提问人:HV Sharma 提问时间:10/25/2023 更新时间:10/25/2023 访问量:60

问:

我有一个 laravel 10 项目。我正在使用 Laravel Excel Package。

我阅读了文档,它分为 和 .没有提到只是阅读文件。我的意思是,我知道我们可以在 中进行调整,但我想知道任何适当的标准方法,只是为了读取文件和操作数据。ImportsExportsImports

有没有办法我们可以为多个 Spreedsheets 创建一个类文件,就像它只是为了读取和操作数据,而不是将其导入数据库?ImportsExports

php excel laravel laravel-excel

评论

1赞 apokryfos 10/25/2023
如果您安装了 Laravel Excel,则安装了 PHPOffice,因此您可以使用它(文档)
1赞 CBroe 10/25/2023
正如它在 github 页面上所说,这是 PhpSpreadsheet 库的包装器。phpspreadsheet.readthedocs.io/en/latest:“PhpSpreadsheet 是一个用纯 PHP 编写的库,它提供了一组类,允许您读取和写入各种电子表格文件格式,例如 Excel 和 LibreOffice Calc。

答:

1赞 rain developer 10/25/2023 #1

答:

这是使用 Laravel Excel 包直接在 Laravel 中读取和操作电子表格文件中数据的解决方案。当您需要处理 Excel 文件中的数据而不将其导入数据库时,这特别有用。

第 1 步:安装 Laravel Excel

composer require maatwebsite/excel
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Collection;

// Read the Excel file
$excelSpreadSheetData = Excel::toCollection(null, 'your-spreadsheet.xlsx');

// In `$excelSpreadSheetData`, you get all the sheets available in your Excel file.
// Suppose that in your Excel file, there are 3 sheets (User, Employee, Salary).
// You can access the data like this:

$userData = $excelSpreadSheetData[0];
$employeeData = $excelSpreadSheetData[1];
$salaryData = $excelSpreadSheetData[2];

此方法允许您直接处理 Laravel 中 Excel 文件中的数据,并且对于不涉及将数据导入数据库的任务非常有用。

我希望这可以帮助任何希望在 Laravel 中使用 Excel 数据的人。

0赞 aVadim 10/25/2023 #2

另一种方法是使用另一个库 - https://packagist.org/packages/avadim/fast-excel-reader

此库是只读数据

use \avadim\FastExcelReader\Excel;

$excel = Excel::open($file);
$sheet = $excel->sheet('Users');

// Read all rows in two-dimensional array (ROW x COL)
$result = $excel->readRows();

如果文件太大,可以逐行阅读

$sheet = $excel->sheet();
foreach ($sheet->nextRow() as $rowNum => $rowData) {
    // $rowData is array ['A' => ..., 'B' => ...]
    // handling of $rowData here
    // ...
}