The organization seems fine to me. I have a few issues with the names you used though.
Minor: IExportable - I prefer NOT using "I" to designate an interface. You don't see this convention in the standard
Java API. This convention is a carry over from styles used in other languages which I don't particularly agree with. Not a big deal if your coding conventions dictate that you use "I" to designate interfaces. I would point out that it doesn't give me any useful information that I couldn't find out with a good
IDE.
Major: Semantics of being "Exportable" doesn't fit the use. If an object is "Exportable" I would expect it to be the thing that is converted to PDF or CSV, not the thing that performs the conversion. That is, I would expect a Graph to be Exportable or a Table to be Exportable. What you have now is saying "You can export a PDFExporter" and "You can export a CSVExporter" which is not true. The PDFExporter can export something to PDF and the CSVExporter can export something to CSV.
It would make more sense to name the interface as Exporter. This would fit common conventions that qualify the interface name with something that indicates what the implementation specifically does. The name Exporter can easily be determined to be the interface while PdfExporter and CsvExporter (or alternatively, PdfExporterImpl and CsvExporterImpl) are specific implementations.
You still might want to keep the Exportable interface to define a common method that an Exporter implementation would use to get the data it needs to export.