From f5a1693f064c4a85b7cbc71dc27d72bfcb5e66bf Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 26 Aug 2015 16:04:14 +0200 Subject: [ADD] base_import: support for XLS and ODS files * added intermediate ``_read_file`` step dispatching between CSV, ODS and XLS(X) parsing - primary dispatch on mime type, secondary on file extension: + OS may not provide a relevant mime type if no software locally installed for the filetype (e.g. Windows sends excel files as application/octet-stream if excel is not installed, and ODS files as zip if OpenOffice/LibreOffice isn't installed) + applications may re-register extensions to non-standard mimetypes breaking the dispatcher So if the mimetype is found trust it, otherwise try with the filename's extension (if any) - all readers skip lines with only empty cells in their output - ODS and XLS content are "CSVified", rows are converted to arrays of unicode strings * UI altered to not assume CSV files everywhere, and avoid returning garbage preview data for non-CSV imports Various: * added a ``can_import`` utility function to tests.common, can be used to skip tests if an optional Python dependency is not installed (but one would like tests to run if the dependency is available) * fixed datetime issue in ir_fields * added converter for monetary fields (iso float) * spreadsheet don't have integers, twiddling required to ensure integral values won't be serialized as floats (breaking conversion back to Python) * improved some tests by asserting no error is generated (bonus: logs the error message if there is one, rather than just saying the result is blown) * because some systems only provide elderly versions of XLRD (e.g. current debian stable provides 0.9.2 from April 2013) - keep using xldate_as_tuple instead of 0.9.3's xldate_as_datetime, workaround is simple - check for xlrd.xlsx in case of pre-0.8 XLRD Authorship: Ronak Baxi Mohammed Shekha Task 10792 Closes #7285 --- addons/base_import/static/src/xml/import.xml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'addons/base_import/static/src/xml/import.xml') diff --git a/addons/base_import/static/src/xml/import.xml b/addons/base_import/static/src/xml/import.xml index c3eb2dc2b0d..ae5c78c497d 100644 --- a/addons/base_import/static/src/xml/import.xml +++ b/addons/base_import/static/src/xml/import.xml @@ -5,15 +5,12 @@ -

Select the .CSV - file to import. If you need a sample importable file, you +

Select the file to import. If you need a sample importable file, you can use the export tool to generate one.

- + + name="file" class="oe_import_file" accept=".csv, .xls, .xlsx, .ods"/>
- File Format Options… + CSV Format Options…

@@ -363,11 +360,11 @@

-

Import preview failed due to: . The issue is - usually an incorrect file encoding.

-

Here is the start of the file we could not import:

+

Import preview failed due to: .

+

For CSV files, the issue could be an incorrect encoding.

+

Here is the start of the file we could not import:

-
+