Skip to main content

What does this product

This product provides tools to provide excel exports to Plone users, under xls or csv format.

A framework, with default utilities to export the dexterity contents of a folder, the results of a catalog search, and the results of a eea faceted navigation search. Many field types are managed (text, list, file, boolean, datagrid…).

Try @@collective.excelexport view on any folder containing dexterity elements. Try @@collective.excelexport?excelexport.policy=excelexport.search&review_state=published on site root.

Try @@collective.excelexportcsv view on any folder for csv export.

Translations

This product has been translated into

  • French.

  • Spanish.

You can contribute for any message missing or other new languages, join us at Plone Collective Team into Transifex.net service with all world Plone translators community.

Installation

Install collective.excelexport by adding it to your buildout:

[buildout]

…

eggs =

collective.excelexport

and then running “bin/buildout”

How to configure this product

You can set a list of fields to be excluded from export via the registry record: collective.excelexport.excluded_exportables

How to extend it

Datasources

If you want to implement a new way to get content to export, you can register a #datasource#, which is an adapter for collective.excelexport.interfaces.IDataSource interface.

This adapter can be a named one.

You will call this datasource calling the view @@collective.excelexport?excelexport.policy=datasourcename

See the IDataSource interface for more information

Exportables (excel sheet columns)

If you want to define new columns for your excel export, you will write or override:

- Exportable factories, adapters for IExportableFactory interface that provides a list of Exportables
- Exportables, that define columns.

Example of an exportable factory:

from plone.dexterity.interfaces import IDexterityFTI
from collective.excelexport.exportables.base import BaseExportableFactory
from collective.excelexport.exportables.dexterityfields import get_ordered_fields
from collective.excelexport.exportables.dexterityfields import get_exportable
from collective.excelexport.exportables.dexterityfields import ParentField
from collective.excelexport.exportables.dexterityfields import GrandParentField

class PSTActionFieldsFactory(BaseExportableFactory):
    adapts(IDexterityFTI, Interface, Interface)
    portal_types = ('pstaction',)

    def get_exportables(self):
        portal_types = api.portal.get_tool('portal_types')
        action_fti = portal_types['pstaction']
        oo_fti = portal_types['operationalobjective']
        os_fti = portal_types['strategicobjective']
        fields = []
        fields.extend([get_exportable(
            field[1], self.context, self.request)
            for field in get_ordered_fields(action_fti)])
        fields.extend([get_exportable(
            ParentField(field[1]), self.context, self.request)
            for field in get_ordered_fields(oo_fti)])
        fields.extend([get_exportable(
            GrandParentField(field[1]), self.context, self.request)
            for field in get_ordered_fields(os_fti)])
        return fields

Dexterity exportables

You have a complete set of exportables for dexterity fields. Those are multi-adapters of field, context and request.

You can override them declaring a more specific adapter.

You can also declare a named adapter with the field name if you want a specific rendering for one field.

Styles

If you don’t feel good with default styles, you can register a specific one for: ::
  • the export policy

  • the context

  • the layer

You just have to register a new IStyle adapter, in a zcml:

<adapter for="zope.interface.Interface
              .interfaces.IThemeSpecific"
         factory=".excelstyles.MyNeutralStyle"
         provides="collective.excelexport.interfaces.IStyles"
          />

If you do not specify the name, the styles will be registered for all policies.

and in python:

class MyNeutralStyle(Styles):

    content = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold off; '
                     'align: wrap off, vert centre, horiz left;'
                     'borders: top thin, bottom thin, left thin, right thin;'
                     'pattern: pattern solid, back_colour white, fore_colour white'
                     )

    headers = xlwt.easyxf('font: height 200, name Arial, colour_index black, bold on; '
                         'align: wrap off, vert centre, horiz left; '
                         'borders: top thin, bottom thin, left thin, right thin; '
                         'pattern: pattern solid, back_colour white, fore_colour white; '
                         )

plone.restapi

To get an export via rest api, query @collective.excelexport / @collective.excelexportcsv (with one @)

Tests status

This add-on is tested using Travis CI. The current status of the add-on is:

https://secure.travis-ci.org/collective/collective.excelexport.png https://coveralls.io/repos/collective/collective.excelexport/badge.png?branch=master PyPI badge

Contribute

Have an idea? Found a bug? Let us know by opening a ticket.

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.8.3 (2026-01-15)

  • Added Transifex.net service integration to manage the translation process. [macagua]

  • Added Spanish translation. [macagua]

  • Updated the i18n support. [macagua]

1.8.2 (2020-02-27)

  • Add Python 3 compatibility. [bsuttor]

1.8.1 (2019-11-06)

  • Safely decode voc_value (fix encoding issue) + test [boulch]

1.8 (2019-09-12)

# BREAKING CHANGES

CONFIGURATION_FIELDS constant has been removed, we now use a registry record: collective.excelexport.excluded_exportables

# CHANGES

  • Explicit inclusion of plone.restapi zcml [thomasdesvenain]

  • Exclude dexterity ‘allow discussion’ and ‘exclude_from_nav’ fields (previously, only archetypes fields were excluded) [thomasdesvenain]

  • Fix error when referenced object value has no Title method. [thomasdesvenain]

  • Fix: Don’t ommit fields that are in the default fieldset if there is one [petchesi-iulian]

  • Fix error on eea.faceted when there is a widget operator. [thomasdesvenain]

  • Archetypes support, Products.ATExtensions support (RecordField, RecordsField, FormattableNamesField). [thomasdesvenain]

  • Fix encoding issue.

1.7 (2018-06-22)

  • Added plone.restapi service. [thomasdesvenain]

  • Fixed csv export mimetype.

  • Added helper method get_exportable_for_fieldname. [gbastien]

1.6 (2018-01-05)

  • Fix: no limit for number of results in eeafaceted datasource. [cedricmessiant]

1.5 (2017-11-28)

  • Upgrade bootstrap. [sgeulette]

  • Fix: render choice field with source vocabulary [sgeulette]

1.4 (2017-05-31)

  • Prevent removal of exportables with similar names when ordering them [thomasdesvenain]

  • Refactor: view exposes method that creates data buffer from sheet data. [thomasdesvenain]

  • Made correct release [sgeulette]

1.3 (2016-11-28)

  • Fix: check if value_type is empty for collection field render. [bsuttor]

  • Fix: try to get the value of a method if the field is a method and translate DateTime results to a unicode, this fixes the export for objects with the IPublication Behavior. [pcdummy]

  • Fix: be sure to not retrieve an attribute on an object by acquisition. [vincentfretin]

  • Feature: render_style can now return a Style object with content and headers attribute to be able to customise the header style per exportable. [vincentfretin]

  • Feature: the passed obj to render_value is now exportable.field.bind(obj).context to make it easier to get data from parent or grandparent. [vincentfretin]

  • Feature: BaseFieldRenderer.render_header method returns now the translated field title instead of the Message object. [vincentfretin]

  • Fix: Ignore reverse parameter when creating export url. [cedricmessiant]

  • Feature: Add sort exportables feature using exportables_order list. Works with field and non-field exportables. [cedricmessiant, ebrehault, thomasdevenain]

1.2 (2014-09-10)

  • Feature: Added export under csv format. [thomasdesvenain]

  • API: Filter exportables by field name by default using excluded_exportables list. [cedricmessiant]

  • API: We can define a dexterity adapter for just one field using field name as adapter name. [thomasdesvenain]

  • Fix: Faceted nav export link ignores results per page criterion. [thomasdesvenain]

  • Fix: Translate sheet title. [thomasdesvenain]

  • Fix: Improve text fields support. [fngaha, thomasdesvenain]

1.1 (2014-06-19)

  • Rename search policy excelexport.search to avoid conflict with ‘search’ view. [thomasdesvenain]

1.0 (2014-06-02)

  • Initial release. [thomasdesvenain]

Metadata

Release files for collective.excelexport 1.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.excelexport 1.8.3
File Size Uploaded
collective_excelexport-1.8.3.tar.gz 44.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for collective.excelexport 1.8.3
File Interpreter ABI Platform
collective_excelexport-1.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 91.1 kB

Release files / collective_excelexport-1.8.3.tar.gz

Download URL collective_excelexport-1.8.3.tar.gz
Size 44.7 kB
Tags Source
SHA-256 checksum
How to use checksums
486f539fdcd7b227c96e3dbcf3f5e9de93092c23f1da9515852c5765860d57cc
BLAKE2b-256 checksum
How to use checksums
54f6e18bb3496c9d04af371e65c8f2118c6d27c7f5496b82b6cfdf06f8d20f66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / collective_excelexport-1.8.3-py3-none-any.whl

Download URL collective_excelexport-1.8.3-py3-none-any.whl
Size 46.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
326d39939465ba4ad884e4b748df8c42f463f29f6f25158381dec6051aef7080
BLAKE2b-256 checksum
How to use checksums
1447a27c5f418ece9a74d05143c616620456a77b0e969d8ef2b73c1d92090975
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release history Release notifications | RSS feed

2.0

2 release files

This release

1.8.3 This release

2 release files

1.8.2

1 release file

1.8.1

1 release file

1.8

1 release file

1.7

1 release file

1.6

1 release file

1.5

1 release file

1.4

1 release file

1.3

1 release file

1.2

1 release file

1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page