type t val get_process_order : ImportConf.Syntax.t -> t list (** Extract the file list to process, following the identified dependancies. Try to load first the document which does not required another spreadsheet, and keep going in the topological order Raise [Unknown_source file] if a source is referenced but is not declared. The order matter : the exception will be raised in a source is referenced before the declaration (when chaining differents externals) *) val table : t -> ImportDataTypes.Table.t (** Get the table to proceed. *) val columns : t -> ImportContainers.IntSet.t (** A set of columns loaded in this table. Thoses columns may not need reported in the final export. Each column is identified by is index in the Excel document. This set does not include the columns used in the keys. They can be fetched with the [keys] function *) type key = { name : string; (** This is the name of the target table we are pointed to *) expression : ImportDataTypes.Path.column ImportExpression.T.t; (** The expression used as key *) columns : ImportContainers.IntSet.t Lazy.t; (** The list of columns used in the key. All the columns are referenced in the expression. We can have many columns used inside a single key when a function is used (for example for joining multiple columns into a single key) *) } (** This type describe the join key in a table. The name is the refering table using this key (the key name in the datable is key_"name" ), and the expression describe how to build the key. *) val keys : t -> key list (** [keys] is the list of columns pointed by another one. They are considered as join key between the diffrent tables. *)