Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看,求教

handdeal發表於2020-11-24

Laravel版本:5.8
Laravel Excel版本:3.1
Laravel-admin版本:1.8

示例場景:
現在我的Ecxel下有2個工作表,“name”和“subject”
Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看

“name”下的資料沒有公式,

Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看

“subject”下的資料是有公式的,

Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看

現在在Laravel-admin使用Laravel Excel遇到的問題,“subject”工作表的公式是關係到“name”工作表,就不清楚兩張表的公式關聯應該怎麼去拿到值。
例如我圈住的A3,公式是“=name!A3”,
有什麼辦法能夠讓公式“=name!A3”直接等於“錢二”

下面這個是引入多表匯入程式碼

<?php

namespace App\Imports\User;

use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class ImportUser implements WithMultipleSheets
{

    /**
     * @return array
     */
    public function sheets(): array
    {
        return [
            'name' => new FirstSheetImport(),
            'subject' => new SecondSheetImport(),
        ];
    }

這個是FirstSheetImport匯入類(匯入“name”工作表的)程式碼

<?php
namespace App\Imports\User;
use Maatwebsite\Excel\Concerns\ToCollection;
class FirstSheetImport implements ToCollection
{
    // 第一張表 name工作表
    public function collection(Collection $rows)
    {
        dd($rows);
    }
}

列印出來的結果效果

Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看

這個是SecondSheetImport匯入類(匯入“subject”工作表的)程式碼

<?php
namespace App\Imports\User;
class SecondSheetImport implements ToCollection,WithColumnLimit,WithCalculatedFormulas
{
    // 第二張表 subject工作表
    public function collection(Collection $rows)
    {
        dd($rows);
    }
}

列印出來的結果效果

Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看

但是查了下官網後,發現有這個類可以自動算公式的

Maatwebsite\Excel\Concerns\WithCalculatedFormulas 匯入時計算公式。預設情況下是禁用的。

然後使用這個類之後就出現這種問題了,就挺禿然的

Laravel-admin匯入多表並且自動計算公式,場景有些不一樣,有做過的麻煩進來看看
所以現在沒有辦法知道怎麼解決,無奈上來找找路子,給給辦法,有做過的嗎?求教!謝謝大佬!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章