Skip to content

Export Utilities

export_utils

get_csv_bytes(data)

Convert a 2D list of rows to CSV file bytes.

Parameters:

Name Type Description Default
data

List of rows (each row is a list of values).

required

Returns:

Name Type Description
bytes

CSV file contents.

get_csv_temp_file(data)

Write CSV data to a named temporary file and return it wrapped in a TempFile.

Parameters:

Name Type Description Default
data

Iterable of rows (each row is an iterable of values).

required

Returns:

Name Type Description
TempFile

Context manager wrapping the temp file.

get_csv_response_from_bytes(data_bytes, file_name)

Create an HttpResponse for downloading a CSV file from bytes.

Parameters:

Name Type Description Default
data_bytes

The CSV file contents as bytes.

required
file_name

The download file name.

required

Returns:

Name Type Description
HttpResponse

Configured for CSV download.

get_csv_response(data, file_name)

Generate a CSV download response from a 2D list of data.

Parameters:

Name Type Description Default
data

List of rows (each row is a list of values).

required
file_name

The download file name.

required

Returns:

Name Type Description
HttpResponse

Configured for CSV download.

get_csv_package_response_from_sheets(sheets, file_name)

Package multiple CSV sheets into a ZIP file and return as a download response.

Parameters:

Name Type Description Default
sheets

Iterable of (sheet_name, sheet_data) tuples, where sheet_data is a 2D list of rows. Each sheet becomes a CSV file in the ZIP.

required
file_name

The download file name for the ZIP archive.

required

Returns:

Name Type Description
HttpResponse

Configured for ZIP download containing the CSV files.

Example
sheets = [
    ('users', [['name', 'email'], ['Alice', 'a@b.com']]),
    ('orders', [['id', 'total'], [1, 99.99]]),
]
response = get_csv_package_response_from_sheets(sheets, 'export.zip')