+#define _xml(X) (CHAR_CAST (const xmlChar *, (X)))
+
+#define _xmlchar_to_int(X) ((X) ? atoi (CHAR_CAST (const char *, (X))) : -1)
+
+enum spreadsheet_type
+ {
+ SPREADSHEET_NONE,
+ SPREADSHEET_GNUMERIC,
+ SPREADSHEET_ODS
+ };
+
+
+struct spreadsheet
+{
+ const char *file_name;
+
+ enum spreadsheet_type type;
+
+ /* The total number of sheets in the "workbook" */
+ int n_sheets;
+
+ /* The dictionary */
+ struct dictionary *dict;
+};
+
+
+struct casereader * spreadsheet_make_reader (struct spreadsheet *, const struct spreadsheet_read_options *);
+
+const char * spreadsheet_get_sheet_name (struct spreadsheet *s, int n);
+char * spreadsheet_get_sheet_range (struct spreadsheet *s, int n);
+
+
+char * create_cell_ref (int col0, int row0);
+char *create_cell_range (int col0, int row0, int coli, int rowi);
+
+void spreadsheet_destroy (struct spreadsheet *);
+
+
+