代码之家  ›  专栏  ›  技术社区  ›  LearnProgramming

Laravel,如何基于此代码修改/编辑excel?

  •  1
  • LearnProgramming  · 技术社区  · 6 年前

    我在控制器中有一个工作代码,如下所示,问题是当我想编辑它的内容时,它不会保存。

    控制器

    $rows = Excel::load($file_path, function($reader) use ($column_number)
    {
        $reader->takeColumns($column_number);
        $reader->noHeading();
    
    })->get();
    
    $rows = $rows->toArray();
    

    查看内容

    dump($rows[0][0]); // this will display A1 cell and it is working fine
    

    $rows[0][0] = "Test"; // this will not write the cell A1
    dump($rows); // but it will display as shown in picture below
    

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  1
  •   Raghbendra Nayak    6 年前

    按图纸索引加载文件并附加值

    $download_file_name = 'DataFile';
     Excel::selectSheetsByIndex(1)->load($file_path, function($reader) use () {
        $reader->sheet('Sheet1', function($sheet) use () {
            //if you want to add value append single value
            $sheet->SetCellValue("A7", "Exporter");
            //if want to append row
            $sheet->appendRow($dispColArray);                  
                         });
    }, 'UTF-8')->setFilename($download_file_name)->download('xls');
    

    您还可以为图纸样式使用以下函数

    1. 对于图纸样式

      $sheet->setStyle(array(
          'font' => array(
              'name' => 'Calibri',
              'size' => 9,
              'background' => '#ffffff'
          )
      ));
      
    2. 合并单元格和设计

      $sheet->mergeCells('A1:D4');
      $sheet->cells('A1:D4', function($cells) {
          $cells->setBackground('#ffffff');
      
      });
      
        2
  •  0
  •   markantonay    6 年前

    您可以修改Excel加载中的值。

    $rows = Excel::load($file_path, function($reader)
    {
        $reader->sheet('sheet1', function($sheet){
            $sheet->cells('E4', function($cell) {
                $cell->setValue('my value');
            });
        });     
    
    })->store('xls');