An existing inventory, kept in a spreadsheet, enters the catalogue raisonné through Imports, CSV tab (“Import CSV/TSV — Bring an existing inventory into the catalogue”), or through File › Import CSV…, which opens that tab. Each row of the file becomes a work; or, in Complete existing works mode, fills the empty fields of a work already in the catalogue (see Completing existing works). Nothing is written before you have seen the preview and confirmed.
The import goes through four steps: File, Columns, Preview, Report.
1. File
Choose a file… and select a CSV or TSV file. The separator and encoding are detected: UTF-8 (with or without a BOM), UTF-16 when the file starts with its BOM, otherwise Latin-1 (the screen says “Decoded as Latin-1” or “Decoded as UTF-16”). The separator can be corrected at the next step.
Above the button, The file’s rows chooses what the import does: Create new works (the case described here) or Complete existing works. The choice can also be changed at the Columns step.
An inventory over 64 MB is not read: Catalog gives the file’s size and asks you to check the file you chose (a file picked by mistake, a disk image, a video). For exhibitions and publications, the limit is 50 MB.
2. Columns

For each column of the file, choose the work field it feeds, or — ignore —:
- Catalogue no. (required), Variant;
- Inventory no. — the work’s number in the fonds’ inventory, if it has one: never the catalogue no. (see Catalogue no. and inventory no.). The headers
inventory_number, “Inventory no.”, “Inventory number” or “Inv.” are recognised; - Title, Subtitle, Alternate titles (separated by
|); - Original titles, Translated titles, Former titles — one kind of typed title per column, several separated by
|, the language after a final@:Nachtstück@de | Night piece@en; - Former numbers — the concordance, several separated by
|, the source in parentheses:42 (Catalogue 1985) | N-7; - Work type, Technique, Support, Series, Genre;
- Date, Place, Description, Statement (the artist’s statement), Rights;
- Sort date (from), Sort date (to) (
1974,1974-03or1974-03-12), Date precision (its code,year,circa…, or its label), Dating rationale — the export’sdate_start,date_end,date_precisionanddate_argumentcolumns. A value given wins (an ambiguous date, or an end before the start, rejects the row); an empty cell, or no column, lets the sort date and the precision be derived from the Date column (see Dates). In Complete mode, an assigned column is authoritative even when empty; - State rank (a whole number,
2), Reproduction exclusion (the reason, by its code:rights,artistChoice,holderRequest,other, or its label); - Circumstances of creation, Artistic project, Film / sensor, Format, History, Analysis;
- Existence;
- Storage locations — where the work is kept, several separated by
|, the kind in final parentheses, as its code (the one the export writes:box,hardDrive…) or its label in English or French:Box 12 (box) | LaCie 4 TB (Hard drive); a value without a kind is an “Other” location. The headersstorage_locations, “Storage location” or “Storage” are recognised; - Artist (agent) — the author, looked up in the agent directory.
Catalog suggests a mapping from the file’s headers (those of its own CSV export, and common French and English headings): check it, every suggestion can be changed.
Also set the Separator (Detect, Comma (,), Semicolon (;), Tab) and First row is a header.
A column must be assigned to the catalogue number: it is the citable key, and what collisions are detected on. The numbers come from your inventory; Catalog does not make them up on import. The inventory no. is optional: an empty cell leaves the work without one.
Saving the mapping
Give a Mapping name, then Save mapping: the next file from the same collection is set up in one click from Saved mapping. The chosen separator is saved with it.
3. Preview
Preview runs a dry run: “nothing is written yet. The import writes the accepted rows only, in one transaction.”

The preview shows the number of accepted and rejected rows, the first rows as they will be imported, and each rejection with its line and reason:
- missing catalogue number;
- the number already exists in the catalogue (a number is never reissued);
- the number appears twice in the file;
- the inventory no. is already given to a work or print in the catalogue, or appears twice in the file (an inventory no. is unique in the fonds). Case and spaces don’t make another number:
inv 042is refused ifINV 042is already given. The reason names the holder (“inventory no. at-1 is already given to print 2026-012-3 of “Brume sur l’étang” (2026-012)”) or the line of the file that already carries the number, and how it writes it; - unreadable date (including a date the calendar does not have:
1974-02-30,2023-02-29, month 13), or ambiguous date —12/03/1974may be 12 March or 3 December: the row is rejected rather than guessed; - value outside the vocabulary (an unknown existence);
- incomplete row, too many fields (unquoted separator?), file ending inside an open quote;
- unknown agent, or several agents match the name.
Dates
The Date column is kept unchanged as the published date; Catalog derives the sort date and its precision from it when there is no ambiguity:
| In the file | Read as |
|---|---|
1974 | year |
vers 1974, circa 1974, ca. 1974, c. 1974, ~1974 | circa 1974 |
années 1970, 1970s | decade |
1970-1975 (or with a long dash) | range |
1974-03, 03/1974 | month |
1974-03-12 | day |
25/03/1974, 03/25/1974 | day, when only one reading is possible |
Existence
The Existence column accepts the codes the export writes (extant, lost, destroyed, unknownLocation, notTraced) and the labels in French and in English, those of the screens as well as those the export wrote before version 0.19 (Extant, Lost, Destroyed, Location unknown, Not traced; Existante, Perdue, Détruite, Localisation inconnue, Non retrouvée), case and accents ignored. When the cell is empty, the work is “Extant”.
The same goes for every list value the import reads (the kind of a storage location, of an exhibition, of a publication, of a citation): the code, or the label in French or in English. The table of the codes is in the next chapter (see The codes of the values).
Unknown agents
An artist name missing from the directory is never created silently. The Unknown agents panel lists these names, with the number of rows citing them. For each one:
- Create — the agent will be created on import (one single agent for all the rows citing this name);
- Attach to… — an existing agent in the directory;
- Reject rows — the rows citing it are not imported.
Create all creates all the remaining names. As long as a name is undecided, its rows are rejected. When several agents in the directory share the same name, attach explicitly.
The preview updates with every decision. Back to columns returns to the previous step.
4. Import and report
Import n works writes the accepted rows in one single transaction: all or nothing. Before starting, Catalog checks that the catalogue can take all these works within your plan’s limit (50 works without a licence); otherwise the import is refused with the reason, and nothing is written. Stop cancels the running import: “Import cancelled — nothing was written.”
The imported works:
- are Draft;
- keep the file’s catalogue number, reserved from then on like any number;
- when a row names an artist, receive a Certain attribution, accepted, in the photographer role;
- are confidential if New works confidential is ticked in Settings › Catalogue (Default confidentiality);
- start their change history with “Record created”, origin CSV import.
The report says how many works were imported, how many agents created, and lists the rejected rows. Save rejection report… saves it as CSV (import-rejections.csv, columns line and reason; with a French interface, import-rejets.csv with ligne and motif) so you can correct the file. Import another file starts again. Before the import, Another file (at the Columns and Preview steps) drops the current file without writing anything.
5. Importing exhibitions
The same CSV tab also imports the exhibition history: choose Exhibitions at the top of the screen (instead of Works). The steps are the same: file, columns, preview, report; the button that writes is Import.
The file can have one row per exhibition (a plain list), or one row per work and exhibition: that is the format of the exhibitions.csv file of the CSV export, which therefore re-imports with its links. Recognised columns: exhibition title, subtitle, type (solo, group, fair, biennial, permanent, online; or its code: solo, group, fair, biennial, permanent, online), venue, city, country, start and end dates, dates as published, curator, web address, note; and, to add a work, its catalogue number (and variant), its number in the exhibition, the room, the wall and the label. Only the title is required.
- One exhibition per title, venue and start date. Rows that share these three values (case and accents ignored) form a single exhibition: the first describes it, the next ones add their works. An exhibition already in the catalogue with the same values is reused as is, never duplicated or modified.
- Works are found by their catalogue number. An unknown number rejects the row. A link already recorded is not rewritten: re-importing the same file adds nothing.
- Dates follow the rules of the works import (a date such as
12/03/1979that can be read two ways rejects the row); so does an end date before the start date. - Venues and curators missing from the directory are never created without your decision. By default (Keep the name as written), the name is kept as written: the venue as the exhibition’s text, the curator in its note (“Curator: …”). You can also Create the agent, Attach to… an existing agent, or Reject rows. Matching a directory agent uses the exact name, case and accents ignored: never resemblance.
The import writes the new exhibitions and their links in a single transaction; Stop cancels everything. The report says how many exhibitions and links were created, and the rejection report is saved as for works.
The column mapping is saved as for works (Mapping name, Save mapping, then Saved mapping for the next file); the mappings of exhibitions, publications and works are kept apart, each import offers only its own.
6. Importing publications
Choose Publications at the top of the CSV tab to import a bibliography, and the works each publication cites. The steps are the same: file, columns (with saved mappings), preview, report; the button that writes is Import.
The file can have one row per publication (a bibliography), or one row per work and publication: that is the format of the publications.csv file of the CSV export, which therefore re-imports with its citations. Recognised columns:
- for the publication: title, full reference, subtitle, type (monograph, exhibition catalogue, group catalogue, periodical, newspaper, essay, thesis, web, scholarly article, poster, other; or its code, the one of the export’s
publication_kindcolumn), authors and editors (several names separated by;or|), publisher, place of publication, year, edition, ISBN, ISSN, DOI, web address, periodical title, volume, issue, page count, language, note; - to cite a work: its catalogue number (and variant), pages, figure, plate, citation type (mention, reproduction, discussion, catalogue entry; or its code, the one of the
citation_kindcolumn), “illustrated” and “on the cover” (yes or no), quoted text and a note.
The title is required, or failing that the full reference: that is what the exported file contains, and the reference then stands for the title (when re-exported, the row stays the same). The export’s short_reference column is not read back: the short reference derives from the authors and the year.
- One publication, however many rows. Two rows name the same publication if they have the same ISBN (hyphens ignored), else the same DOI, else the same full reference (case and accents ignored). The first row describes it, the next ones add their citations. A publication already in the catalogue is reused as is, never duplicated or modified.
- Works are found by their catalogue number; an unknown number rejects the row. A citation already recorded (same publication, same work, same pages, figure and plate, including a citation made through one of the work’s prints) is not rewritten: re-importing the same file adds nothing.
- The year is kept as written (“1982”, “n.d.”); a date such as
12/03/1979, which can be read two ways, rejects the row, as does a date the calendar does not have (1979-02-30). An unreadable type, page count or yes/no rejects it too, with its reason. - Publishers missing from the directory are never created without your decision. By default (Keep the name as written), the name is kept as written, in the publication’s note (“Publisher: …”). You can also Create the agent (an organisation, with the publisher role), Attach to… an existing agent, or Reject rows. Matching uses the exact name, case and accents ignored: never resemblance.
The import writes the new publications and their citations in a single transaction; Stop cancels everything. The report says how many publications and citations were created, and the rejection report is saved as for works.
Completing existing works
The Complete existing works mode fills, from a spreadsheet, the fields left empty in works already in the catalogue. The typical case: export works.csv (see Exporting the catalogue), fill the empty cells in the spreadsheet (technique, support, genre, dates, rights…), then re-import the file in this mode.
- Each row names a work by its catalogue no. and variant. A number that is not in the catalogue rejects the row: this mode never creates a work. A work named twice rejects the second row.
- Only empty fields are filled. A value already entered is never replaced, even when the file proposes another one: the preview says so (“different value, kept”). An empty cell fills nothing: an export’s file, re-imported unchanged, changes nothing.
- The fields filled are those the works import can read (list of the Columns step). Never: the catalogue no. and the variant, the status, the attribution (the Artist (agent) column is not read), the confidentiality, and an inventory no. already given. A missing inventory no. is filled when no other object of the fonds holds it. The existence always has a value (“Extant” by default): another one in the file is kept, never applied.
- Dates: without a sort date column, the one derived from the Date column fills the work only when its published date is the file’s. An end date that would come before the start date rejects the row.
- The import’s rules apply: an ambiguous or unreadable date, a value outside the vocabulary, an inventory no. already given reject the row, with its reason.
The preview groups by work the fields that will be filled, with their value, and the values kept, with the file’s; then the rejected rows and their reason. It counts the works to complete, the fields to fill, the values kept, and the works with no empty field to fill.
Complete n works writes everything in one transaction; Stop cancels everything. Each work completed keeps in its change history one entry per field filled, origin CSV import (completion). The report says how many works were completed and fields filled; Undo (in the report, or Edit › Undo) empties the filled fields again, as undoing a batch edit does: a field changed since keeps its new value. Since no work is created, a completion does not count against your plan’s limit.
Sample files
Files ready to import, in UTF-8, with the column names the import reads, show each format on the walkthrough’s fictional fonds (see Input examples):
- oeuvres.csv — 8 works, Create new works mode;
- oeuvres-complement.csv — Complete existing works mode, after
oeuvres.csv; - expositions.csv — 3 exhibitions and 5 links;
- publications.csv — 4 publications and 4 citations;
- thesaurus.csv — for Thesaurus › Import….
Try them in a demonstration library: imported numbers stay reserved.
Good to know
- The
works.csvfile from Catalog’s CSV export re-imports as is: its columns are recognised automatically (see Exporting the catalogue), exceptstatus,attribution,completeness,published_at,conditionandcondition_description, which the import does not read (the status changes in the record, an attribution is a claim with its argument, the completeness and the publication date are computed, the work’s condition is entered in its conservation). In Create mode, since its numbers already exist in the same catalogue, it is mostly useful to feed another catalogue; in Complete mode, it completes the catalogue it comes from. - A text cell that starts with an apostrophe followed by
=,+,@, a tab, a carriage return, or-without being a number, loses that apostrophe on import: it is the one the CSV export puts before a text a spreadsheet would take for a formula (see Formulas neutralised). A file exported then re-imported therefore gives back its texts exactly; an apostrophe followed by anything else ('Nocturne) is kept. The same goes for exhibitions, publications and the vocabulary. - An import that creates works cannot be undone with a button: delete the works one by one if needed. Their numbers stay reserved. A completion, on the other hand, can be undone (see above).
- The works import creates the work, the fields above and the attribution to the artist; nothing else. Prints, provenance, relations between works, auction sales, conservation interventions, structured rights (the Rights column fills the free rights statement) and documents are not imported: they are entered in the record. The CSV export does write them (see CSV): those tables (
prints.csv,provenance.csv,relations.csv,sales.csv,conservation.csv,rights.csv,documents.csv) are export only in 1.0. An import will come later, as an addition, without changing their columns (see What will not change).