Export all Gravity Forms entries to Excel (.xlsx) or CSV via a download button or a secret shareable URL.
GravityExport (Gravity Form Entries in Excel) is the ultimate no-hassle solution for exporting data from Gravity Forms.
Powerful new functionality is available with GravityExport! Save exports to FTP & Dropbox, export as PDF, and format exports for data analysis.
When you configure a new export, the plugin will generate a secure download URL that you can share with anyone who needs the data (No need to log in!). Reports will automatically update as new entries are added.
Export your entries directly to .xlsx format. No more wasting time importing your CSV files into Excel and re-configuring columns.
If you’d prefer to have your reports generated as CSV, GravityExport Lite makes it easy.
Once you have your download URL, you can easily filter by date range and field value.
Save time generating exports in Gravity Forms: Configure the fields that are included in your CSV or Excel export. No need to set up every time!
If you have any questions regarding GravityExport Lite, check out our documentation.
If you need further assistance, read this first and our support team will gladly give you a helping hand!
php-xml
and php-zip
libraries. The plugin will check for those.The full version of GravityExport unlocks these game-changing features:
We’ve written an article that contains all you need to know about exporting data from Gravity Forms.
This section describes how to install the plugin and get it working.
gravityexport-lite
to the /wp-content/plugins/
directoryNo problem. You can use the gfexcel_output_meta_info
or gfexcel_output_meta_info_{form_id}
hooks to disable
this feature. Or (since version 1.4.0) you can select individual fields you want to exclude on the settings page.
Just add this to your functions.php
:
add_filter( 'gfexcel_output_meta_info', '__return_false' );
Sure, makes sense. You can override the label hooking into
gfexcel_field_label, gfexcel_field_label_{type}
, gfexcel_field_label_{type}_{form_id}
or
gfexcel_field_label_{type}{form_id}{field_id}
The field object is provided as parameter, so you can check for type and stuff programmatically.
You can override the value by hooking into gfexcel_field_value
, gfexcel_field_value_{type}
,
gfexcel_field_value_{type}_{form_id} or gfexcel_field_value_{type}_{form_id}_{field_id}
The entry array is provided as a parameter, so you can combine fields if you want.
Great question! Yes you can! You can set it on the settings page, or make use of the following hooks to get that working:
gfexcel_field_separated_{type}{form_id}{field_id} where every variable is optional.
Yes it can, in multiple ways:
The default way the plugins renders output is by calling get_value_export
on the field.
All Gravity Forms fields need that function, so make sure that is implemented.
The result is one column with the output combined to one cell per row.
But you can also make your own field renderer, like this:
GFExcel\Field\BaseField
(recommended) or extends GFExcel\Field\AbstractField
or implements GFExcel\Field\FieldInterface
getColumns
and getCells
. (See AddressField
for some inspiration)gfexcel_transformer_fields
hook as: type => Fully Qualified Classname
(e.g., $fields['awesome-type'] => 'MyTheme\Field\MyAwesomeField'
)By now you really should know you can change almost every aspect of this plugin. Don’t like the name?
Change it using the settings page, or by using the gfexcel_renderer_filename
or gfexcel_renderer_filename_{form_id}
hooks.
Also you can update title, subject and description metadata of the document by using
gfexcel_renderer_title({form_id}), gfexcel_renderer_subject(_{form_id})
and
gfexcel_renderer_description({form_id}).
Sure, why not. By default, we sort on date of entry in ascending order. You can change this, per form,
on the Form settings page (GravityExport Lite) under “General settings”.
You’re in luck: for those situations we’ve added a bulk option on the forms table.
As a bonus, you can select multiple forms, and it will download all results in one file,
on multiple worksheets (!!!)
You can disable the hyperlinks by using the gfexcel_renderer_disable_hyperlinks
-hook.
//add this to your functions.php add_filter('gfexcel_renderer_disable_hyperlinks','__return_true');
A number field is formatted as a number, but most fields default to a string.
As of this moment, there are 3 field types. Boolean
,String
and Numeric
. You can set these per field.
//add this to your functions.php use GFExcel\Values\BaseValue; add_filter('gfexcel_value_type',function($type, $field) { if($field->formId == 1 && $field->id == 2) { //Possible values are 'bool', 'string' or 'numeric', //or, use the constant, preferred: return BaseValue::TYPE_NUMERIC; //TYPE_STRING, TYPE_BOOL } }, 10, 2);
Since most values are Value Objects, we can interact with them, and trigger a setUrl
function on a value.
//add this to your functions.php add_filter('gfexcel_value_object',function($value, $field) { if($field->formId == 1 && $field->id == 2) { $value->setUrl('https://wordpress.org'); } }, 10, 2);
By default the notes are disabled for performance. If you’d like to add these to the row you can activate this like so:
//add this to your functions.php add_filter('gfexcel_field_notes_enabled','__return_true'); //or add_filter('gfexcel_field_notes_enabled_{formid}','__return_true'); // e.g., gfexcel_field_notes_enabled_2
Definitely! You get to change: text color, background color, bold and italic. If that is not enough, maybe you should add clip art!
//add this to your functions.php add_filter('gfexcel_value_object', function (BaseValue $value, $field, $is_label) { // Need to know if this field is a label? if (!$is_label) { return $value; } $value->setColor('#ffffff'); //font color, needs a six character color hexcode. #fff won't cut it here. $value->setBold(true); // Bold text $value->setItalic(true); // Italic text (to be combined with bold) $value->setBackgroundColor('#0085BA'); // background color // $field is the GF_Field object, so you can use that too for some checks. return $value; }, 10, 3);
Yes, this can happen. Unfortunately, this isn’t something that can be fixed without modifying your server configuration.
As a default, WordPress allocates 40 MB of memory. Because the plugin starts the rendering pretty early, it has most of it available.
But every cell to be rendered (even if it’s empty) takes up about 1KB of memory. This means that you have (roughly)
40 MB * 1024 KB = 40,960 Cells. I say roughly, because we also use some memory for calculations and retrieving the data.
If you’re around this cell-count, and the renderer fails; try to upgrade the WP_MEMORY_LIMIT
. Checkout WooCommerce’s Docs for some tips.
You can hide a row by adding a hook. Checkout this example:
add_filter('gfexcel_renderer_hide_row', function ($hide, $row) { foreach ($row as $column) { if ($column->getFieldId() === 1 && empty($column->getValue())) { return true; // hide rows with an empty field 1 } } return $hide; // don't forget me! }, 10, 2);
gfexcel_renderer_csv_output_encoding
hook to set the character encoding on the CSV.Use admin label
setting.Developer Updates:
gk/gravityexport/settings/use-admin-labels
hook.gk/gravityexport/field/use-admin-labels
hook.gk/gravityexport/field/nested-form/export-field
hook to dynamically add other nested form fields to the export.Developers: This might be a breaking change to some plugins, if they directly reference any of the dependencies.
Developer Updates:
gk-gravityexport-lite
.Entry ID
as a sorting option. Useful when duplicate entry dates exist.gfexcel_field_label
filter.date_updated
as a default exported meta field.in
and not in
operators in the URL query string did not work.0
.gfexcel_field_likert_use_score
hook.gfexcel_renderer_csv_*
hooks to include the form id.gform_export_separator
callbacks with 2 expected parameters.gfexcel_field_value
filters will also be applied on subfields of separable fields.gform_export_separator
filter will also be used to determine the delimiter.gform_include_bom_export_entries
filter will also be used to determine BOM character use.Developer Updates:
Please note that gfexcel_*
hooks will be gradually renamed while retaining backward compatibility.
displayOnly
fields from the export list like the normal export function.gfexcel_output_sorting_options
filter to set sorting options.gfexcel_hash_form_id
filter to get form ID from the unique URL hash value.gfexcel_hash_feed_data
filter to get feed object from the unique URL hash value.gfexcel_get_entries_<form_id>_<feed_id>
filter to override default logic responsible for querying DB entries.gfexcel_file_extension
webhook to overwrite the extension (by default, .xlsx
).esc_url()
in the dashboard.Not released on WordPress due to linter issues.
gfexcel_renderer_cell_properties
hook.setFontSize(?float $font_size)
on value objects, so every cell can have a different font size.setBorder($color, $position)
on value objects to set a border on a cell.set_time_limit
is not allowed to prevent failing download.gfexcel_renderer_csv_delimiter
-> default: ,
gfexcel_renderer_csv_enclosure
-> default: "
gfexcel_renderer_csv_line_ending
-> default: PHP_EOL
gfexcel_renderer_csv_use_bom
-> default: false
gfexcel_renderer_csv_include_separator_line
-> default: false
gfexcel_renderer_columns_max_width
.gfexcel_renderer_wrap_text
hook to disable wrapping text.$form_id
as an argument to gfexcel_output_search_criteria
for convenience.noindex, nofollow
to the headers of the export, and added a Disallow
to the robots.txt
.gfexcel_download_renderer
hook to inject a custom renderer.ob_end_clean
.^1.3
.[gfexcel_download_link id=2]
short tag for WordPress and {gfexcel_download_link}
for GF notification.CreatedBy
field to easily change user_id
to nickname
or display_name
. Use filter gfexcel_meta_created_by_property
.start_date
or end_date
from date range filter when empty. Caused errors for some.created_by
and payment_date
were not converted to the WordPress timezone.start_date
and end_date
query_parameters.gfexcel_renderer_hide_row
. Checkout the FAQ for more info.gfexcel_output_search_criteria
filter to customize the search_criteria
for requests.getField()
, getFieldType()
and getFieldId()
to help with filtering.gfexcel_field_value
-hook.Results in Excel
to Entries in Excel
to be more consistent.gfexcel_value_object
-hook (See docs).gfexcel_field_notes_enabled
.composer.json
update to wordpress-plugin
for easier installation with bedrock.gfexcel_meta_value
.date_created
. Use gfexcel_meta_date_created_separated
to split date and time in 2 columns.Dutch
translation + enabled possibility to translate via WordPress.org. You can help me out!gfexcel_renderer_worksheet_title
hook.gfexcel_field_disable
filter to disable all fields you want. Fields will be filtered out before handling.gfexcel_output_rows
and gfexcel_output_columns
filters to have more control over output. Thanks @mircobabini.gfexcel_field_section_enabled
hook (return true).gfexcel_field_fileuploads_enabled
hook (return false).