To support exporting ace:list data, it is more feasible and more convenient to create a new component ace:listExporter specifically for such task, following the unix philosophy.
Despite the fact that ace:list is a UIData descendant, all the code in ace:dataExporter is geared toward exporting ace:dataTable data. Most of the methods are long and have complex logic aimed at satisfying the various requirements, options, and different scenarios for exporting ace:dataTable data, including features such as multiple headers, spanning rows, child rows, tree datamodel, etc. A key difference is that ace:list doesn't use columns, while most of the code in ace:dataExporter is closely dependent on column objects.
Making all these methods even more intricate and complex in order to support exporting ace:list data would make the component harder to understand and to maintain, and it would make the code more error prone and harder to test as well.
From the development perspective, it would be easier and faster to develop a new component exclusively for exporting ace:list data. The code from ace:dataExporter that would actually apply to ace:list is actually a small percentage, and this would give us more flexibility in supporting various features and scenarios that are exclusive to ace:list, such as also supporting ace:listControl.
From the user perspective, it would be easier and more intuitive to use, since many of the attributes would be exclusive to exporting ace:list data, and ace:listExporter wouldn't have any of the ace:dataTable-specific attributes, also avoiding the need to clarify in the documentation what each attribute applies to.
This also aligns better with the planned ace:scheduleExporter component (
ICE-11238), having separate exporter components to suit specific needs.