VBO Export
Views Bulk Operations モジュール用の一括エクスポートアクションを提供し、選択したビューの行を CSV、Excel(XLSX)、PDF ファイル形式にエクスポートできるようにします。
vbo_export
インストール
composer require 'drupal/vbo_export:^4.1'
概要
VBO Export は Views Bulk Operations(VBO)の拡張モジュールで、VBO フィールドを持つ任意のビューに3つの強力なエクスポートアクションを追加します。ユーザーはビューから行を選択し、単一の一括操作で CSV、Excel(XLSX)、または PDF 形式にエクスポートできます。
このモジュールは、ビューからデータをエクスポートする必要があるサイト向けに設計されています。コンテンツインベントリ、ユーザーリスト、注文データ、またはビューに表示されるその他の構造化された情報などが対象です。各エクスポート形式には、HTML タグの除去、フィールド選択のオーバーライド、CSV 区切り文字や PDF ページの向きなど、形式固有の設定を含む構成可能なオプションがあります。
エクスポートファイルは自動的に生成され、ダウンロード可能なリンクとしてユーザーに提示されます。ファイルは Drupal の cron プロセスによって自動的にクリーンアップされる一時ファイルとして保存されます。セキュリティのため、プライベートファイルシステムが設定されている場合、エクスポートファイルはプライベートディレクトリに保存されます。
Features
- 選択したビューの行を設定可能な区切り文字(セミコロン、カンマ、またはパイプ)で CSV 形式にエクスポート
- 選択したビューの行をプロフェッショナルな書式設定(太字ヘッダー、オートフィルター、列幅自動調整、テキスト折り返し)で Excel XLSX 形式にエクスポート
- 選択したビューの行を設定可能な用紙サイズと向きで PDF 形式にエクスポート
- クリーンなプレーンテキスト出力のためにエクスポートデータから HTML タグを除去するオプション
- エクスポート用に特定のフィールドを選択しラベルをカスタマイズするフィールドオーバーライド設定
- VBO のバッチシステムを介した大規模エクスポートのバッチ処理サポート
- セキュリティ強化のため、利用可能な場合はプライベートディレクトリへの自動ファイル保存
- Excel との互換性を確保するための CSV ファイル用 UTF-8 BOM ヘッダー
- PDF カスタマイズ用のテーマテンプレート
- 自動クリーンアップのための Drupal の一時ファイルシステムとの統合
Use Cases
コンテンツインベントリのエクスポート
タイトル、作成者、作成日、ステータス、コンテンツタイプなどのフィールドを持つすべてのコンテンツを一覧表示するビューを作成します。VBO フィールドを追加し、CSV または Excel エクスポートアクションを有効にします。コンテンツ編集者は、すべてのコンテンツを選択(またはフィルタリングして特定のアイテムを選択)し、監査やレポート目的で完全なコンテンツインベントリスプレッドシートをエクスポートできます。
マーケティング用ユーザーリストのエクスポート
メール、名前、登録日、ロールのフィールドを持つユーザーのビューを作成します。VBO Export を使用すると、管理者は選択したユーザーレコードを CSV 形式でエクスポートし、メールマーケティングプラットフォームや CRM システムにインポートできます。オプトインしたユーザーのみをエクスポートすることで GDPR コンプライアンスを確保できます。
経理用注文データのエクスポート
EC サイトの場合、注文番号、日付、顧客、合計、ステータスのフィールドを持つ注文のビューを作成します。Excel エクスポートアクションを使用して、経理担当者がすぐに作業できるプロフェッショナルな書式設定のスプレッドシートを生成します。オートフィルターにより簡単にデータ分析が可能です。
PDF レポートの生成
イベント登録や会員記録を表示するビューを作成します。PDF エクスポートアクションを使用して、テンプレートによるカスタム書式設定で印刷可能なレポートを生成します。これは、出席者リスト、会員証、または印刷やメール添付が必要な公式記録を生成するのに便利です。
選択的データ移行の準備
システム間でコンテンツを移行する際、VBO Export を使用して特定のコンテンツアイテムを選択的にエクスポートします。フィールドオーバーライドを設定して移行に必要なフィールドのみを選択し、ラベルをカスタマイズして移行先システムが期待する列ヘッダーに一致させます。
Tips
- セキュリティ強化のために Drupal でプライベートファイルシステムを設定してください。利用可能な場合、エクスポートファイルは自動的にプライベートストレージを使用します。
- プログラムで処理されるデータや他のシステムにインポートされるデータをエクスポートする場合は、「HTML タグを除去」オプションを使用してください。
- ビュー自体に表示されているものとは異なるフィールド選択やラベルが必要な場合は、フィールド設定をオーバーライドしてください。
- 非常に大きなエクスポートの場合、VBO のバッチ処理がデータをチャンクで処理し、メモリの問題やタイムアウトを防ぎます。
- テーマで PDF テンプレート(vbo-export-pdf.html.twig)をカスタマイズして、組織のブランディングと書式設定の要件に合わせてください。
- Excel エクスポートはヘッダー行にオートフィルターを自動的に含めるため、ユーザーはファイルを開いた直後にデータをフィルタリングおよびソートできます。
- CSV ファイルには UTF-8 BOM 文字が含まれており、Excel で開いたときに特殊文字が正しく表示されます。
- 一時エクスポートファイルは Drupal の cron によって自動的にクリーンアップされます。ファイルシステムの肥大化を防ぐために、cron が定期的に実行されていることを確認してください。
Technical Details
Hooks 2
hook_help
モジュールのヘルプページに README.md の内容を表示するために hook_help を実装しています。
hook_theme
PDF レンダリング用の vbo_export_pdf テーマを定義するために hook_theme を実装しています。
Troubleshooting 7
Composer を使用して PhpSpreadsheet ライブラリをインストールしてください: composer require phpoffice/phpspreadsheet ^2.2。その後、キャッシュをクリアしてください。
Composer を使用して Dompdf ライブラリをインストールしてください: composer require dompdf/dompdf。バージョン ^1.0、^2.0、または ^3.0 をサポートしています。
vbo_export モジュールが有効になっていることを確認してください。すべてのキャッシュをクリアしてください。アクションは Views Bulk Operations フィールドを設定する際の「選択されたアクション」リストに表示されるはずです。
このモジュールは Excel 互換性のために UTF-8 BOM を追加しています。問題が続く場合は、「開く」ではなく「インポート」を使用して Excel で CSV を開き、明示的に UTF-8 エンコーディングを選択してみてください。
vbo-export-pdf.html.twig テンプレートがアクセス可能であることを確認してください。カスタムテンプレートを使用している場合は、テンプレートの構文を確認してください。複雑な HTML や CSS は Dompdf で正しくレンダリングされない場合があります。
VBO Export は大規模なデータセットにバッチ処理を使用します。PHP の max_execution_time と memory_limit が十分であることを確認してください。VBO が適切なバッチサイズでアイテムを処理するように設定されていることを確認してください。
public または private ファイルディレクトリのファイルシステム権限を確認してください。Web サーバーが一時ファイルの場所に書き込めることを確認してください。
Security Notes 5
- エクスポートファイルは設定されている場合、プライベートファイルシステムに保存され、エクスポートデータへの不正な直接アクセスを防ぎます。
- ファイルは一時ファイルとして作成され、Drupal の cron プロセスによる自動クリーンアップが保証されます。
- エンティティの「view」アクセス権限はエクスポートを許可する前にチェックされます。ユーザーは閲覧権限を持つコンテンツのみをエクスポートできます。
- エクスポートされるデータの機密性を考慮してください。エクスポート機能を持つビューに適切なアクセス制御を確保してください。
- 「HTML タグを除去」設定が無効の場合は注意してください。エクスポートされたデータには、消費するアプリケーションによって予期しない解釈をされる可能性のあるマークアップが含まれる場合があります。