テーブル用に複数のシート スペースを作成する

1. テーブルに複数のシート スペースが存在する場合があり、異なるシート スペースでチェックされるテーブル データが異なる場合があります。

2.アップロードされたファイルに基づいて書かれています  

   簡単なデモを投稿してください。直接パッケージ化することもできます

 

 

/**
 * 輸出
 * @param $データ
 * @return \Illuminate\Http\JsonResponse
 */
public static function exportList($list,$field)
{
    もし ($リスト) {
        $path = Excel::export_more_sheet($list, [
            'タイトル' => $field,
            「通常」 => [
                "car_nature" => 関数 ($v) {
                    return self::CAR_NATURE[$v];
                }
            ]
        ]);
        $res['media_id'] = base64_encode($path);
    }

    return response_json($res);

}
public static function export_more_sheet($data, $map, $file = null, $workSheetName = "WorkSheet", $one_line=[])
{

    if (empty($file)) $file = timesrim();

    $file_path = storage_path("excel") . '/' . $ファイル . ".xlsx";
    if (!isset($map['title'])) {
        if (count($data) > 0 && isset($data[0])) {
            $map['title'] = array_combine(array_keys($data[0]), array_keys($data[0]));
        } それ以外 {
            $map['title'] = array();
        }
    }
    $header = 配列();
    $header1 = 配列();
    foreach ($map['title']['0'] as $key => $val) {
        if (isset($map['simpleFormat'][$key])) {
            $header[$val] = $map['simpleFormat'][$key];


        } それ以外 {
            $header[$val] = '一般';
        }
    }
    foreach ($map['title']['1'] as $key => $val) {
        if (isset($map['simpleFormat'][$key])) {
            $header1[$val] = $map['simpleFormat'][$key];


        } それ以外 {
            $header1[$val] = '一般';
        }
    }
    $writer = 新しい XLSXWriter();
    $writer->writeSheetHeader('予約済みリスト', $header);
    $writer->writeSheetHeader('プロモーション リスト', $header1);

    foreach ($data[0] as $row) {
        $temp = 配列();
        foreach ($map['title'][0] as $key => $value) {
            if (isset($row[$key])) {
                if (isset($map['regular']) && isset($map['regular'][$key]) && is_callable($map['regular'][$key])) {
                    $row[$key] = call_user_func($map['regular'][$key], $row[$key]);

                    if( isset($one_line[$key]) ){
                        if( $one_line[$key]==false ) $one_line[$key]=true;
                        そうでなければ $行[$キー] = '';
                    }

                }
                $temp[] = $row[$key];
            } それ以外 {
                $temp[] = '';
            }
        }
        $writer->writeSheetRow('予約リスト', $temp);
    }

    foreach ($data[1] as $row) {
        $temp = 配列();
        foreach ($map['title'][1] as $key => $value) {
            if (isset($row[$key])) {
                if (isset($map['regular']) && isset($map['regular'][$key]) && is_callable($map['regular'][$key])) {
                    $row[$key] = call_user_func($map['regular'][$key], $row[$key]);

                    if( isset($one_line[$key]) ){
                        if( $one_line[$key]==false ) $one_line[$key]=true;
                        そうでなければ $行[$キー] = '';
                    }

                }
                $temp[] = $row[$key];
            } それ以外 {
                $temp[] = '';
            }
        }
        $writer->writeSheetRow('プロモーション リスト', $temp);
    }

    $writer->writeToFile($file_path);
    $file_path を返します。
}

おすすめ

転載: blog.csdn.net/qq_42082023/article/details/121385031