WP Manifestindependent plugin directory
manifest / forms / gf-xlsx-csv-notifications

Gravity Forms - XLSX to CSV Notifications WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Converts XLSX files uploaded through Gravity Forms file upload fields (including GP File Upload Pro) to CSV and attaches the CSV (plus the original XLSX) to form notifications.

★ 1stars
12release downloads
v1.1.4latest · 3mo ago

Install

Download gf-xlsx-csv-notifications.zip From the v1.1.4 release on GitHub, Jul 8, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/guilamu/gf-xlsx-csv-notifications/releases/download/v1.1.4/gf-xlsx-csv-notifications.zip
Updates itself. It ships its own updater, so new versions appear under Dashboard → Updates.

Converts XLSX files uploaded through Gravity Forms into CSV and attaches both the CSV and the original XLSX to your notification emails.

Per-Form Settings

Each form gets an XLSX to CSV tab under its settings (Forms → your form → Settings → XLSX to CSV). The plugin detects every file upload field in the form and exposes, per field:

  • CSV only (drop XLSX) — attach only the converted CSV, leaving the original XLSX out of the notification
  • CSV delimiter — semicolon, comma, tab, or pipe
  • Converted worksheet — which worksheet to convert (1 = first sheet)

No code required — the options that used to live behind filters are now point-and-click, and configurable independently for each upload field.

XLSX to CSV Conversion

  • Convert the chosen worksheet of every uploaded .xlsx file to CSV (first sheet by default)
  • Generate Excel-friendly output: configurable delimiter (semicolon by default) and UTF-8 BOM so accented characters open correctly
  • Reuse cached conversions: a CSV is regenerated only when the source XLSX or its settings change
  • Run everything locally with the bundled SimpleXLSX library (MIT) — no external service involved

Notification Attachments

  • Attach the generated CSV (and, by default, the original XLSX) to Gravity Forms notification emails
  • Match single and multi-file upload fields, including GP File Upload Pro — with no dependency on it
  • Fine-tune each upload field from the form settings, or target whole forms/notifications with dedicated filters
  • Trace every conversion and error through the Gravity Forms logging system

Key Features

  • Zero Configuration: Activate the plugin and every notification of forms with file upload fields is covered; per-field options are optional
  • Per-Field Control: A settings tab on each form to tune attachment, delimiter and worksheet for every upload field
  • Multilingual: Works with content in any language
  • Translation-Ready: All strings are internationalized (French translation included)
  • Secure: Uploaded file URLs are resolved with path-traversal protection, confined to the Gravity Forms upload directory
  • GitHub Updates: Automatic updates from GitHub releases

Requirements

  • Gravity Forms 2.5 or higher
  • WordPress 5.8 or higher
  • PHP 7.4 or higher

Installation

  1. Upload the gf-xlsx-csv-notifications folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins menu in WordPress
  3. Nothing else to configure: XLSX files uploaded through any form with a file upload field are converted and attached to its notifications

FAQ

Does it require GP File Upload Pro?

No. The plugin hooks into the standard gform_notification filter and works with any Gravity Forms file upload field, single or multi-file. GP File Upload Pro is supported but not required.

Can I enable the conversion for specific forms or notifications only?

Yes, use the gf_xlsx_csv_notifications_enabled filter:

add_filter( 'gf_xlsx_csv_notifications_enabled', function( $enabled, $notification, $form ) {
    return (int) $form['id'] === 12; // only form 12
}, 10, 3 );

Can I attach the CSV only, without the original XLSX?

Yes. Open Forms → your form → Settings → XLSX to CSV and enable CSV only (drop XLSX) for the relevant upload field. It is configurable per field.

Can I change the CSV delimiter or the converted worksheet?

Yes, in the same XLSX to CSV form settings tab: pick the CSV delimiter (semicolon, comma, tab or pipe) and the Converted worksheet number (1 = first sheet) for each upload field.

Can I exclude a specific upload field?

Yes, use the gf_xlsx_csv_notifications_field_enabled filter:

add_filter( 'gf_xlsx_csv_notifications_field_enabled', function( $enabled, $field ) {
    return (int) $field->id !== 7;
}, 10, 2 );

Can I change how dates are formatted in the CSV?

Yes, use the gf_xlsx_csv_notifications_date_format filter. It receives a PHP date() format string (default d/m/Y) and the source XLSX path:

add_filter( 'gf_xlsx_csv_notifications_date_format', function( $format, $xlsx_path ) {
    return 'd/m/Y H:i:s'; // keep the time, e.g. for a genuine timestamp column
}, 10, 2 );

Where can I see what was converted or why a file was skipped?

Enable Gravity Forms logging (Forms → Settings → Logging): the plugin logs every attachment and every conversion error there.

Limitations

  • Only .xlsx files are converted; the legacy .xls format is not supported by SimpleXLSX
  • One worksheet per CSV: the first sheet by default, or another one chosen per field in the form settings
  • Conversion happens when a notification is sent, not at upload time

Project Structure

.
├── gf-xlsx-csv-notifications.php          # Main plugin file
├── uninstall.php                          # Cleanup on uninstall
├── README.md
├── LICENSE
├── includes
│   ├── class-gf-xlsx-csv-addon.php        # Per-form settings tab (GFAddOn)
│   ├── class-github-updater.php           # GitHub auto-updates
│   ├── Parsedown.php                      # Markdown parser for the plugin details popup
│   └── SimpleXLSX.php                     # XLSX reader (shuchkin/simplexlsx, MIT)
└── languages
    ├── gf-xlsx-csv-notifications-fr_FR.mo # French translation (binary)
    ├── gf-xlsx-csv-notifications-fr_FR.po # French translation (source)
    └── gf-xlsx-csv-notifications.pot      # Translation template

Changelog

1.1.4 - 2026-07-08

  • Fixed: the add-on title and the XLSX to CSV form settings tab label were hardcoded in English and never passed through the i18n functions, so they ignored the French translation. They are now translated once the textdomain is loaded

1.1.3 - 2026-07-06

  • Fixed: fields set to CSV only (drop XLSX) could still end up with the XLSX attached, because Gravity Forms' own "Attach uploaded files to notification" option runs after this plugin's filter and re-added it. A new gform_pre_send_email hook now runs last, dropping the XLSX for "CSV only" fields and de-duplicating attachments right before the email is sent

1.1.2 - 2026-07-06

  • Fixed: date cells were converted using a fixed Y-m-d H:i:s format (e.g. 1979-09-17 00:00:00) instead of matching how Excel displays the date. Dates are now written as d/m/Y by default; use the new gf_xlsx_csv_notifications_date_format filter to change the format (e.g. keep the time for genuine timestamp columns)

1.1.1 - 2026-07-06

  • The Converted worksheet field now rejects 0 and negative values (1 = first sheet): the number input enforces a minimum of 1 client-side, snapping back to 1 if cleared or set below 1

1.1.0 - 2026-07-06

  • Added a per-form XLSX to CSV settings tab that detects every file upload field and exposes, per field: CSV only (drop XLSX), CSV delimiter, and converted worksheet (1 = first sheet)
  • Replaced the gf_xlsx_csv_notifications_attach_original, gf_xlsx_csv_notifications_delimiter and gf_xlsx_csv_notifications_sheet_index filters with these UI settings
  • Cache filename now accounts for delimiter/worksheet so changing a setting regenerates the CSV instead of reusing a stale one
  • Kept the gf_xlsx_csv_notifications_enabled and gf_xlsx_csv_notifications_field_enabled filters as programmatic escape hatches

1.0.0 - 2026-07-04

  • Initial release
  • XLSX to CSV conversion (first worksheet, semicolon delimiter, UTF-8 BOM) attached to Gravity Forms notifications
  • Optional attachment of the original XLSX file
  • Filters to target forms, notifications and fields, and to change delimiter and worksheet
  • Automatic updates from GitHub releases

Security

If you discover a security vulnerability in this plugin, please report it responsibly through GitHub Security Advisories. Do not open a public issue for security reports.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

For translations, the plugin uses WordPress i18n. You can contribute translations by editing the .po files in the languages/ directory and generating the corresponding .mo files with the wp i18n CLI commands.

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) — see the LICENSE file for details.


Made with love for the WordPress community

Releases

5 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.1.4 latest
Jul 8, 2026 3mo ago
gf-xlsx-csv-notifications.zip
6
Jul 6, 2026 3mo ago
gf-xlsx-csv-notifications.zip
2
Jul 6, 2026 3mo ago
gf-xlsx-csv-notifications.zip
1
Jul 6, 2026 3mo ago
gf-xlsx-csv-notifications.zip
1
Jul 4, 2026 3mo ago
gf-xlsx-csv-notifications.zip
2
A grade

Security

Gravity Forms - XLSX to CSV Notifications 1.1.4 · audited by WP Registry

No security issues found.

Audited release
1.1.4
Findings
none
Worst severity
—
Content hash
9832f88c002840144058ba57…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.