在 Laravel 中读取 excel 个文件
Reading excel file in Laravel
我正在使用 Maatwebsite 的库来读取和创建 excel 文件。创作很简单,也很直观,但一读起来,我就是想不通。
这是我的 excel 文件的样子:
我想出了如何遍历行,但让我感到困惑的是我示例中的 $row 实际上是字符串类型,所以我不能做 $row->something;
在我的控制器中,我想这样阅读它:
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]; ?
如果您不能回答我的问题,如果您有任何可用的代码,我将不胜感激,因为在线文档不多。
编辑:我发现我的 headers 中有多个词,所以不知何故它们都被混淆了。
编辑:因为在线文档不多我觉得我应该分享解决问题的方法。
解决代码:
$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}]
也许这对你有用
$rows = Excel::load('storage\exports\'. $fName)->get();
//Using PHPExcel IOFactory
public function index()
{
$inputFileName = 'example.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
//dd($sheetData);
foreach ($sheetData as $rows=>$k) {
$num = $rows;
foreach ($k as $key=>$value) {
$excel = new Excel;
$excel->cell_number = $num;
$excel->cell_letter = $key;
$excel->cell_value = $value;
$excel->save();
}
}
return view('excel', compact('sheetData'));
}
我正在使用 Maatwebsite 的库来读取和创建 excel 文件。创作很简单,也很直观,但一读起来,我就是想不通。
这是我的 excel 文件的样子:
我想出了如何遍历行,但让我感到困惑的是我示例中的 $row 实际上是字符串类型,所以我不能做 $row->something;
在我的控制器中,我想这样阅读它:
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]; ?
如果您不能回答我的问题,如果您有任何可用的代码,我将不胜感激,因为在线文档不多。
编辑:我发现我的 headers 中有多个词,所以不知何故它们都被混淆了。
编辑:因为在线文档不多我觉得我应该分享解决问题的方法。
解决代码:
$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}]
也许这对你有用
$rows = Excel::load('storage\exports\'. $fName)->get();
//Using PHPExcel IOFactory
public function index()
{
$inputFileName = 'example.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
//dd($sheetData);
foreach ($sheetData as $rows=>$k) {
$num = $rows;
foreach ($k as $key=>$value) {
$excel = new Excel;
$excel->cell_number = $num;
$excel->cell_letter = $key;
$excel->cell_value = $value;
$excel->save();
}
}
return view('excel', compact('sheetData'));
}