PyCharm 2020.2 Help

Export data in PyCharm

PyCharm has an engine to export and import data in various formats. You can select a predefined format or create your own.

For more information about export and import operations, see the corresponding section.

Export directions

You can export or copy to the clipboard any result set, table, or view.

Export to a file

  1. To export data to a file, perform one of the following actions:

    • Right-click a result set, a table, or a view, select Export Data.

    • Right-click a query and select Export Data to File.

    • On the toolbar, click the Export Data icon (The Export Data icon) and select Export to File.

  2. In the Export Data dialog, click Export to File.

Export to a clipboard

  • Select data in the result set or in the editor and press Ctrl+C.

  • On the toolbar, click the Export Data icon (The Export Data icon) and select Copy To Clipboard.

Built-in extractors

You can select a built-in export format from the list near the Export Data icon (The Export Data icon). There are several built-in formats. You can export data as a set of INSERT or UPDATE statements. Also, you can select text formats like CSV, JSON, HTML, Markdown, and other formats (for more information about export options, see Import/Export options.

Before PyCharm 2020.1, if you select the default extractor from the list, you set this extractor as default for the whole IDE. Beginning from PyCharm 2020.1, you set the extractor for a single table. If you open a different table, the extractor defaults to CSV.

Select the extractor

Configure an extractor for delimiter-separated values

You can extend the default functionality and create your own format that is based on CSV or any DSV format.

  1. From the Export Data list (The Export Data icon), select Configure CSV formats.

  2. In the CSV Formats dialog, click the Add Format icon The Add Format icon.

  3. Specify a name of a new format (for example, Confluence Wiki Markup).

  4. Define settings of the format, and click OK.

    When the format is created, you can select it in the drop-down list near the Export Data icon (The Export Data icon).

    Configuring extractors

Creating any text extractor with scripting

For more complicated cases, use scripting extractors. PyCharm already has some of them (for example, CSV-Groovy.csv.groovy, HTML-Groove.html, and other extractors). These scripts are written in Groovy, but you can also write them in JavaScript. Consider our examples that use Groovy.

Looking closely at the filename, CSV-Groovy.csv.groovy:

  • CSV-Groovy is the name of the script.

  • csv is the extension of the result file.

  • groovy is the extension of the script.

Scripts are usually located in Scratches and Consoles/Extensions/Database Tools and SQL/data/extractors. Or you can select Go to scripts directory in the extractor menu to navigate there.

Go to scripts directory

Edit an existing extractor or add your own to this folder.

Let’s create an extractor that dumps your data to the CSV format, but only to one row. It can be useful if you are going to paste these values into an IN operator in a WHERE clause.

See the following diff of two scripts: the existing CSV-Groovy.csv.groovy and CSV-ToOneRow-Groovy.csv.groovy.

Viewing diff for two scripts

Consider available context bindings:

COLUMNS <DataColumn> //selected columns ALL_COLUMNS List<DataColumn> //all columns

These objects are equal when you dump a whole page to a file.

ROWS Iterable<DataRow> //selected rows

, where:

DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object } DataColumn { columnNumber(); name() }
OUT {append()} //object to output data FORMATTER {format(row, col); formatValue(Object, col)} //converts data to String TRANSPOSED Boolean //checks if data editor is transposed (Gear Icon → Transpose) TABLE DasTable //object that represents the actual table you’re extracting data from

DasTable has two important methods:

Before v2017.3

DasObject getDbParent() JBIterable<DasObject> getDbChildren(Class, ObjectKind)

Since v2017.3

DasObject getDasParent() JBIterable<DasObject> getDasChildren(ObjectKind)

Additional information about the API can be found here.

When you create or edit Groovy scripts in PyCharm, and have Groovy installed, coding assistance is available.

Coding assistance for Groovy scripts

Once CSV-ToOneRow-Groovy.csv.groovy is in the folder, you can use the extractor.

Use the extractor

Copy these values and paste them into the query.

Copy values and paste them into the query

Here’s another example that is based on SQL-Insert-Statements.sql.groovy. MySQL and PostgreSQL allow using multi-row syntax. To use this type of extractor, create a new SQL-Inserts -MultirowSynthax.sql.groovy file in the scripting folder.

Create a new SQL-Inserts-MultirowSynthax.sql.groovy file

Again, select it in the menu.

Select the script in the menu

See the result in PyCharm:

The result of the script

Feel free to use other generated extractors on GitHub:

Last modified: 19 August 2020