This module provides a CSV encoder for the Drupal Serialization API. This enables the CSV format to be used for data input and output in various circumstances. For example:

  • Drupal's REST module can accept or return data in CSV format
  • Views can output CSV data via a 'REST Export' view
  • Module developers may leverage CSV as a format when using the Serialization API

Requirements

You should use Composer to manage your Drupal site dependencies. This may require several modifications to your application's root composer.json. You must modify your composer.json in accordance with the linked documentation before following the installation instructions. Please read the documentation if you are not familiar with the specifics of managing a Drupal site with Composer.

Composer alternative

This module supports Ludwig, a manual alternative to managing Drupal modules with Composer.

Installation

  1. Download the csv_serialization module via Composer: composer require drupal/csv_serialization. This will only work if your Drupal application meets the requirements listed above. Alternatively, you may use Ludwig.
  2. Enable modules: rest, csv_serialization

How to create a CSV view

  1. Create a new view
  2. Add a "Rest Export" display to the view
  3. Check ONLY "csv" for Accepted request formats under Format -> Serializer -> Settings
  4. Set a path for the View display under Path Settings
  5. Change Format -> Show to "fields"
  6. Add fields to the view
  7. Verify that content exists which should be displayed in the view
  8. Save the view
  9. Visit the path that you set for the view
  10. A CSV file should be automatically downloaded when you visit the URL

Notes about the CSV encoder

The CSV format has a number of inherent limitations not present in other formats
(e.g., JSON or XML). Namely, they are:

  • A CSV cannot accurately represent the data in an array with a depth greater two. Cell contents must be flattened into a string, which at most represents single-dimensional imploded values.
  • Each row in a CSV must share a common set of headers with all other rows.

For these reasons, the CSV format is not well-suited for encoding all data structures--only data with a specific structure. The provided CSV encoder does not support data structures that do not meet these limitations.

Related Modules

  • Views Rest Feed permits a "Rest export feed" view display to be attached to another View display as a feed, in the same way that RSS feeds may be attached.
Supporting organizations: 
Development Sponsor
Drupal 10 release support

Project information

Releases