我正在使用Maatwebsite的库来读取和创建Excel文件。创建操作很容易且直观,但是当涉及到读取时,我就无法弄清楚该怎么做。
这是我的Excel文件的样子:
我已经找到了如何循环遍历行,但是让我困惑的是,在我的示例中,$row实际上是字符串类型,因此我无法执行$row->something;
在我的控制器中,我想以以下方式进行读取:
这会给我输出结果。
输出不在正确的顺序,让我感到困惑。
我的行是字符串类型,这为什么?
是否可以像在矩阵中那样访问特定的单元格:$table[$row][$column];?
如果你不能回答我的问题,如果你有任何可用的工作代码,我会非常感激,因为网上没有很多文档。
编辑:我发现我的标题有多个单词,所以所有内容都混在一起了。
编辑:因为网上没有很多文档,所以我觉得我应该分享解决方案的代码。
解决方案代码:
这是我的Excel文件的样子:
![enter image description here](https://istack.dev59.com/2YTk4.webp)
在我的控制器中,我想以以下方式进行读取:
Excel::load('storage\\exports\\'. $fName, function($reader) {
$reader->each(function($sheet) {
Log::warning("sheet happens");
// Loop through rows
$sheet->each(function($row) {
Log::warning($row);
});
});
});
这会给我输出结果。
[2016-01-28 06:42:05] local.WARNING: sheet happens
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING:
[2016-01-28 06:42:05] local.WARNING: sheet happens
[2016-01-28 06:42:05] local.WARNING: ocjena
[2016-01-28 06:42:05] local.WARNING: Kolokvijum 1 (%)
[2016-01-28 06:42:05] local.WARNING: Kolokvijum 2
[2016-01-28 06:42:05] local.WARNING: Kolokvijum 2 (%)
[2016-01-28 06:42:05] local.WARNING: Završni ispit (%)
[2016-01-28 06:42:05] local.WARNING: Završni ispit
输出不在正确的顺序,让我感到困惑。
我的行是字符串类型,这为什么?
是否可以像在矩阵中那样访问特定的单元格:$table[$row][$column];?
如果你不能回答我的问题,如果你有任何可用的工作代码,我会非常感激,因为网上没有很多文档。
编辑:我发现我的标题有多个单词,所以所有内容都混在一起了。
编辑:因为网上没有很多文档,所以我觉得我应该分享解决方案的代码。
解决方案代码:
$rows = Excel::load('storage\\exports\\'. $fName)->get();
Log::warning($rows);
打印输出:
[{"ime_studenta":"andrej","broj_indeksa":4,"kolokvijum_1":4,"kolokvijum_2":4,"zavrsni_ispit":44,"ukupno":4,"ocjena":4},{"ime_studenta":"as","broj_indeksa":342,"kolokvijum_1":123,"kolokvijum_2":57,"zavrsni_ispit":56,"ukupno":5656,"ocjena":56}]