---
title: "How to customize the CSV field separator?"
date: 2026-04-23
author: "GravityKit"
link: "https://www.gravitykit.com/docs/gravityview-pro/datatables/how-to-customize-the-csv-field-separator/"
---

When exporting entries from a DataTables View, the default field separator is a comma (`,` ). You can change this to a different character using the `gravityview_datatables_js_options` filter.

## When to change the separator

You may need a different separator when:

- Your spreadsheet software expects a different format
- You need to import the data into a system that requires a specific delimiter
- You want to create a TSV (tab-separated values) file instead of CSV

## Common separators

| Separator | Character | Use case |
|---|---|---|
| Comma | `,` | Default CSV format |
| Tab | `\t` | TSV files |
| Semicolon | `;` | Common in European locales |

## Example: Change to tab-separated (TSV)

Add this code to your site using one of the methods described in [Adding custom PHP code snippets to your website](https://www.gravitykit.com/docs/gravityview/customizing-your-views/where-to-put-code-samples/):

```
/**
 * Changes the CSV export separator to a tab character for TSV format.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = "\t"; // Tab character for TSV
        }
    }

    return $config;
}, 20, 2 );
```

```
/**
 * Changes the CSV export separator to a tab character for TSV format.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = "\t"; // Tab character for TSV
        }
    }

    return $config;
}, 20, 2 );
```

## Example: Change to semicolon separator

```
/**
 * Changes the CSV export separator to a semicolon.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = ';';
        }
    }

    return $config;
}, 20, 2 );
```

```
/**
 * Changes the CSV export separator to a semicolon.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = ';';
        }
    }

    return $config;
}, 20, 2 );
```

## Example: Change separator for a specific View

```
/**
 * Changes the CSV export separator to a tab, but only for View ID 123.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    // Only apply to View ID 123
    if ( 123 !== $view_id ) {
        return $config;
    }

    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = "\t";
        }
    }

    return $config;
}, 20, 2 );
```

```
/**
 * Changes the CSV export separator to a tab, but only for View ID 123.
 *
 * @param array $config The DataTables configuration array.
 * @param int $view_id The ID of the current View.
 * @return array Modified configuration array.
 */
add_filter( 'gravityview_datatables_js_options', function( $config, $view_id ) {
    // Only apply to View ID 123
    if ( 123 !== $view_id ) {
        return $config;
    }

    if ( empty( $config['tableTools']['aButtons'] ) ) {
        return $config;
    }

    foreach ( $config['tableTools']['aButtons'] as &$button ) {
        if ( 'csv' === $button['sExtends'] ) {
            $button['sFieldSeperator'] = "\t";
        }
    }

    return $config;
}, 20, 2 );
```