Table of Contents
Data can be imported from MySQL into a Microsoft Excel spreadsheet by using the Import MySQL Data option after selecting either a table, view, or procedure to import.
By default, all columns are selected and will be imported.
Specific columns may be selected (or unselected) using the
standard Microsoft Windows method of either
Control + Mouse click to
toggle the selection of individual columns, or
Shift + Mouse click to select
a range of columns.
The background color of a column shows the status of each column. The color white means that the column has been selected, and therefore it will be imported. Conversely, a gray background means that the column will not be imported.
Right-clicking anywhere in the preview grid opens a context-menu
with either a Select None or Select
All option, depending on the current status.
The dialog while importing a table includes the following options:
[ ] Include Column Names as Headers: Enabled by default, this inserts the column names at the top of the Microsoft Excel spreadsheet as a "headers" row.
[ ] Limit to ___ Rows and Start with Row
___: Disabled by default, this limits the range of
imported data. The Limit to option defaults
to 1, and defines the number of rows to
import. The Start with Row option defaults
to 1 (the first row), and defines where the
import begins. Each option has a maximum value of COUNT(rows)
in the table.
[ ] Add Summary Fields: Disabled by default, this option adds a summary field to each column. For additional information, see Section 5.5, “Adding Summary Fields”.
General Options:
Use the first [10] rows to preview
the MySQL tables data. This affects the preview step in the
import process, and defaults to 10.
[ ] Escape text values that start with "=" so Excel does not treat them as formulas, and is enabled by default. This option may not reflect any differences in the preview because it is only applied after the data is imported into the Excel Worksheet.
Excel Table Options:
[ ] Create an Excel table for the imported MySQL table data. Enabled by default.
Use style [ ] for the new Excel table. Defaults to
MySqlDefault.
[ ] Prefix Excel tables with the following text: _______. Disabled by default.
Importing a table displays a dialog similar to the following:
Importing a view or procedure displays a similar dialogue, but with the following options:
Include Column Names as Headers: Enabled by default, this will insert the column names at the top of the Excel spreadsheet as a "headers" row.
Import: Because a procedure might return multiple result sets, the import options include:
: Imports the selected tab sheet. This is the default behavior.
: Imports all result sets into the Excel Worksheet horizontally, and inserts one empty column between each result set.
: Imports all result sets into the Excel Worksheet vertically, and inserts one empty row between each result set.
For example, a dialogue like the following is displayed after importing a procedure and pressing the button to invoke the stored procedure:
Summary fields are calculated fields, and this option adds summary related functions to each of the imported columns. These fields are added to the last row of the imported table data, and the dropdown of choices includes Average, Sum, Min, and Max.
This feature was added in MySQL for Excel 1.3.0.
The Add Summary Fields option (disabled by default) is listed on the import dialog:
Enabling this option adds a row of summary fields for the appropriate columns in your imported data. Notice the newly created row on the bottom:
Select the row to reveal a down arrow, and click it to display a set of summary options:
For example, choosing Sum:
Adjust each summary field accordingly.
A PivotTable can be created from imported MySQL tables, views, stored procedures, or the entire Excel Data Model.
This feature was added in MySQL for Excel 1.3.0.
An Excel PivotTable report summarizes and provides a visual representation of data in many different ways. It is a native Excel feature, see PivotTable reports 101 for additional information about Excel PivotTables.
Our example covers a simple use case where an empty PivotTable is created from an imported MySQL table. This example uses the "film" table of the "Sakila" database. To create the PivotTable, select the "film" table from the database object's selection panel and then click Import MySQL Data. On the Import Data dialog, check the Create a PivotTable before pressing to execute the operation.
When the Create a PivotTable with the imported data option is checked, an empty PivotTable (or a PivotTable placeholder) is inserted just to the right of the imported data. The PivotTable name follows the same naming rules used for Excel tables created from tje imported data, but PivotTables can be created with or without enabling the Create an Excel table for the imported MySQL data advanced option. That means a PivotTable can be created from an imported Excel range (if the aforementioned advanced option is off), or from an imported Excel table (if the option is on).
Click to dump the film table's data to an active Excel Spreadsheet, and this also creates a PivotTable for that data.
Clicking the PivotTable opens a PivotTable Fields panel to next to the MySQL for Excel panel, and from here you can select fields you want to summarize in the PivotTable report. Drag and drop fields from the list to any of the FILTERS, COLUMNS, ROWS, or VALUES areas, depending on the visualizations you want in the report. The report is completely dynamic, meaning that you can change the views by moving fields around the areas until you see the visualization you need for your PivotTable report.
Below is an example PivotTable report using the sakila.film table we imported in our previous example. This report includes a filter by release_year, and it summarizes the rental_rate values while also grouping the data by values in the rating column.
Expanding one of the groups reveals its values from the title and description columns.
We can also do this with data coming from a MySQL view or stored procedures. The only difference is that for stored procedures we can create a PivotTable for each of the imported result sets returned by the procedure's call. Take the following screenshot as an example where we have the film_in_stock stored procedure selected, we configured its input parameter values, and we called the procedure. You can see the procedure returned one result set (Result1) and the OutAndReturnValues table (always present if the procedure has output parameters or a return value).
In our example, we selected to import All Result Sets - Arranged Horizontally. Because the Create a PivotTable with the imported data option was also checked, a PivotTable was created for each returned result set.
An important use case for PivotTables is when we create it for multiple related tables as typically a single table does not contain all of the data needed by a PivotTables report. You can create a single PivotTable tied to the data in the current Excel Data Model that contains fields from several related tables. That way you can use the data in a single report for an entire MySQL schema if needed. However, you can only do this in Excel 2013 (and later) where the Excel Data Model is available.
In Excel versions before Excel 2013, only a PivotTable for each imported table or view can be created. This is because a single PivotTable for the entire Excel Data Model requires that the tables are related to each other. If Excel relationships cannot be created, then this type of PivotTable cannot be created. So in these cases, the Import Data dialog looks like the following sample screenshot:
Clicking Why is this option disabled? displays an information dialog with an explanation of the disabled controls.
Our next example uses all tables in our schema. You can manually choose each table or use Control + A in the database objects list to select them all. When clicking , the Import Data dialog appears as shown below. We need to check the Create a PivotTable option, which by default its drop-down is set to for all the tables in the data model. Keep that value.
When clicking , the data in all of the selected tables is imported to Excel, its Data Model and Excel relationships are created, and a new worksheet is created that contains a PivotTable with all of the tables that were imported. This is demonstrated in the screenshot below, and notice that all tables are listed in the PivotTable Fields panel.
You can also configure the Create a PivotTable drop-down list the for each imported table or view, which in turn will create a PivotTable for each of the imported tables or views, as opposed to creating a single PivotTable for all of them.