What is @ag-grid-community/csv-export?
@ag-grid-community/csv-export is a package that provides functionality to export data from AG Grid to CSV format. It is part of the AG Grid Community edition and allows users to easily export their grid data for use in other applications or for reporting purposes.
What are @ag-grid-community/csv-export's main functionalities?
Basic CSV Export
This feature allows you to export the data displayed in the AG Grid to a CSV file. The code sample demonstrates how to set up the grid options and call the exportDataAsCsv method to perform the export.
const { GridOptions, ModuleRegistry } = require('@ag-grid-community/core');
const { CsvExportModule } = require('@ag-grid-community/csv-export');
ModuleRegistry.registerModules([CsvExportModule]);
const gridOptions = {
columnDefs: [
{ field: 'make' },
{ field: 'model' },
{ field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
]
};
gridOptions.api.exportDataAsCsv();
Customizing CSV Export
This feature allows you to customize the CSV export parameters such as the file name and column separator. The code sample shows how to set the defaultCsvExportParams to customize the export.
const { GridOptions, ModuleRegistry } = require('@ag-grid-community/core');
const { CsvExportModule } = require('@ag-grid-community/csv-export');
ModuleRegistry.registerModules([CsvExportModule]);
const gridOptions = {
columnDefs: [
{ field: 'make' },
{ field: 'model' },
{ field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
],
defaultCsvExportParams: {
fileName: 'custom_export.csv',
columnSeparator: ';'
}
};
gridOptions.api.exportDataAsCsv();
Exporting Selected Rows
This feature allows you to export only the selected rows from the AG Grid to a CSV file. The code sample demonstrates how to select all rows and then export only the selected rows using the exportDataAsCsv method with the onlySelected parameter.
const { GridOptions, ModuleRegistry } = require('@ag-grid-community/core');
const { CsvExportModule } = require('@ag-grid-community/csv-export');
ModuleRegistry.registerModules([CsvExportModule]);
const gridOptions = {
columnDefs: [
{ field: 'make' },
{ field: 'model' },
{ field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxster', price: 72000 }
],
rowSelection: 'multiple'
};
gridOptions.api.selectAll();
gridOptions.api.exportDataAsCsv({ onlySelected: true });
Other packages similar to @ag-grid-community/csv-export
json2csv
json2csv is a popular package for converting JSON data to CSV format. It provides a simple API for transforming JSON objects into CSV strings or files. Compared to @ag-grid-community/csv-export, json2csv is more general-purpose and can be used with any JSON data, not just data from AG Grid.
papaparse
PapaParse is a powerful CSV parser and writer for JavaScript. It can handle large files and provides various configuration options for parsing and stringifying CSV data. While PapaParse is more focused on parsing CSV data, it also offers CSV export functionality, making it a versatile alternative to @ag-grid-community/csv-export.
csv-writer
csv-writer is a simple and easy-to-use library for writing CSV files in Node.js. It allows you to create CSV files from arrays of objects or arrays of arrays. Compared to @ag-grid-community/csv-export, csv-writer is more lightweight and focused solely on writing CSV files, without any dependencies on a grid or table component.
AG Grid
AG Grid is a fully-featured and highly customizable JavaScript data grid.
It delivers outstanding performance, has no third-party dependencies and integrates smoothly with all major JavaScript frameworks.
Here's how our grid looks with multiple filters and grouping enabled:
Features
In addition to the standard set of features you'd expect from any grid:
- Column Interactions (resize, reorder, and pin columns)
- Pagination
- Sorting
- Row Selection
Here are some of the features that make AG Grid stand out:
- Grouping / Aggregation *
- Custom Filtering
- In-place Cell Editing
- Records Lazy Loading *
- Server-Side Records Operations *
- Live Stream Updates
- Hierarchical Data Support & Tree View *
- Customizable Appearance
- Customizable Cell Contents
- Excel-like Pivoting *
- State Persistence
- Keyboard Navigation
- Data Export to CSV
- Data Export to Excel *
- Row Reordering
- Copy / Paste
- Column Spanning
- Pinned Rows
- Full Width Rows
* The features marked with an asterisk are available in the Enterprise version only.
Check out the developer documentation for a complete list of features or visit our official docs for tutorials and feature demos.
Looking for a framework specific solution?
Getting started
Install dependencies
$ npm install --save @ag-grid-community/csv-export
Add a placeholder to HTML
<div id="myGrid" style="height: 150px; width: 600px" class="ag-theme-alpine"></div>
Import the grid and styles
import { Grid } from '@ag-grid-community/core';
import '@ag-grid-community/core/dist/styles/ag-grid.css';
import '@ag-grid-community/core/dist/styles/ag-theme-alpine.css';
Set configuration
var gridOptions = {
columnDefs: [
{ headerName: 'Make', field: 'make' },
{ headerName: 'Model', field: 'model' },
{ headerName: 'Price', field: 'price' }
],
rowData: [
{ make: 'Toyota', model: 'Celica', price: 35000 },
{ make: 'Ford', model: 'Mondeo', price: 32000 },
{ make: 'Porsche', model: 'Boxter', price: 72000 }
]
};
Initialise the grid
var eGridDiv = document.querySelector('#myGrid');
new Grid(eGridDiv, this.gridOptions);
For more information on how to integrate the grid into your project see TypeScript - Building with Webpack 2.
Issue Reporting
If you have found a bug, please report it in this repository's issues section. If you're using the Enterprise version, please use the private ticketing system to do that. For more information on support please see our dedicated support page.
Asking Questions
Look for similar problems on StackOverflow using the ag-grid
tag. If nothing seems related, post a new message there. Please do not use GitHub issues to ask questions.
Contributing
AG Grid is developed by a team of co-located developers in London. If you want to join the team check out our jobs board or send your application to info@ag-grid.com.
License
This project is licensed under the MIT license. See the LICENSE file for more info.