cswni/filament-export 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cswni/filament-export

最新稳定版本:v1.1

Composer 安装命令:

composer require cswni/filament-export

包简介

Customizable export and print functionality for Filament Admin Panel

README 文档

README

Latest Stable Version Total Downloads License

Customizable export and print functionality for Filament Admin Panel.

This package provides a bulk action and header action to export your filament tables easily.

filament-export-3

Requirements

Dependencies

Installation

composer require cswni/filament-export

Using

Simple Usage

Bulk Action

You can export selected rows with the bulk action.

$table->bulkActions([
    ...
    FilamentExportBulkAction::make('export')
    ...
]);

Header Action

You can filter, search, sort and export your table with the header action.

$table->headerActions([
    ...
    FilamentExportHeaderAction::make('export')
    ...
]);

Since ButtonAction is deprecated you may use this action with ->button() instead.

Full Usage

Both actions provide functions for configuration.

FilamentExportBulkAction::make('export')
    ->fileName('My File') // Default file name
    ->timeFormat('m y d') // Default time format for naming exports
    ->defaultFormat('pdf') // xlsx, csv or pdf
    ->defaultPageOrientation('landscape') // Page orientation for pdf files. portrait or landscape
    ->directDownload() // Download directly without showing modal
    ->disableAdditionalColumns() // Disable additional columns input
    ->disableFilterColumns() // Disable filter columns input
    ->disableFileName() // Disable file name input
    ->disableFileNamePrefix() // Disable file name prefix
    ->disablePreview() // Disable export preview
    ->withHiddenColumns() //Show the columns which are toggled hidden
    ->fileNameFieldLabel('File Name') // Label for file name input
    ->formatFieldLabel('Format') // Label for format input
    ->pageOrientationFieldLabel('Page Orientation') // Label for page orientation input
    ->filterColumnsFieldLabel('filter columns') // Label for filter columns input
    ->additionalColumnsFieldLabel('Additional Columns') // Label for additional columns input
    ->additionalColumnsTitleFieldLabel('Title') // Label for additional columns' title input 
    ->additionalColumnsDefaultValueFieldLabel('Default Value') // Label for additional columns' default value input 
    ->additionalColumnsAddButtonLabel('Add Column') // Label for additional columns' add button 

You can also use default bulk action and header action functions to customize actions.

Performance Tips for Large Datasets

  • Since header action does server-side pagination you may choose header action over bulk action.
  • You may disable preview.
  • You may enable direct download.

Configuration

Publish configuration

php artisan vendor:publish --provider="AlperenErsoy\FilamentExport\FilamentExportServiceProvider" --tag="config"

You can configure these settings:

return [
    'default_format' => 'xlsx',
    'time_format' => 'M_d_Y-H_i',
    'default_page_orientation' => 'portrait',
    'disable_additional_columns' => false,
    'disable_filter_columns' => false,
    'disable_file_name' => false,
    'disable_preview' => false,
    'use_snappy' => false,
    'action_icon' => 'heroicon-o-document-download',
    'preview_icon' => 'heroicon-o-eye',
    'export_icon' => 'heroicon-o-download',
    'print_icon' => 'heroicon-o-printer',
    'cancel_icon' => 'heroicon-o-x-circle'
];

Overriding Views

Publish views

php artisan vendor:publish --provider="AlperenErsoy\FilamentExport\FilamentExportServiceProvider" --tag="views"

This package has two views:

  1. "components\table_view.blade.php" view is used for preview.

  2. "pdf.blade.php" view is used as pdf export template.

  3. "print.blade.php" view is used as print template.

Using Custom Variables In Templates

FilamentExportBulkAction::make('export')
    ->extraViewData([
        'myVariable' => 'My Variable'
    ])

or use closures

FilamentExportHeaderAction::make('export')
    ->extraViewData(fn ($action) => [
        'recordCount' => $action->getRecords()->count()
    ])

Then use them in the templates as regular blade variables:

{{ $myVariable }}

Using Snappy

By default, this package uses dompdf as pdf generator.

If you want to use Snappy instead you need to install barryvdh/laravel-snappy to your project and configure it yourself. (See barryvdh/laravel-snappy for more information.)

To use snappy for PDF exports:

  1. You can simply add ->snappy() to your actions.
FilamentExportBulkAction::make('export')
    ->snappy()

or

FilamentExportHeaderAction::make('export')
    ->snappy()
  1. You can update the config file to use it as default.
[
    ...
    'use_snappy' => true,
    ...
]

统计信息

  • 总下载量: 230
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-01-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固