【问题标题】:Reading excel file in Laravel在 Laravel 中读取 excel 文件
【发布时间】:2016-01-27 21:58:45
【问题描述】:

我正在使用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]; ?

如果你不能回答我的问题,如果你有任何工作代码,我真的很感激,因为网上没有太多文档。

编辑:我发现我的标题中有多个单词,所以不知何故这一切都混淆了。

编辑:因为在线文档不多,我觉得我应该分享解决它的方法。

解决方案代码:

$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}] 

【问题讨论】:

  • 我无法让 Laravel 外观为此工作。我最终直接使用 PHPExcel。它非常易于使用,并且具有我在 Maatwebsite 中无法使用的附加功能。

标签: php excel laravel laravel-5 maatwebsite-excel


【解决方案1】:

也许这对你有用

$rows = Excel::load('storage\\exports\\'. $fName)->get();

【讨论】:

    【解决方案2】:
    //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'));
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多