Csv to JABREF converter

database csv to YABREF converter

Hi all, don’t want to stalk you! I am newby to YABREF and I like it! :slight_smile:

I had an old literature database (dataperfect) and wanted to transfer to a newer one.
With postgres I was also not very lucky and found your yabref here.
Thatswhy I had all my old entries and wanted to write a java prog to import all the stuff in yabref.

Would this be interesting for you? Please write your comments shortly.

I could also write the other direction YABREF >> CSV converter.
The program also works good with google tables.
But you (or I) have to customize the field to your situation - that is the problem… :slight_smile:

Later you could also make an all-entry-modification with this easy, e.g. key-changes…


Kind regards to all here from


first of all, welcome to JabRef! We have numerous importers, but not yet one that works for csv files. I really like the idea of having a CSV importer. If you are interested, you could implement that directly in JabRef. We would be happy to assist you! Start here

In terms of customizing, JabRef has a method for parsing fields by name. So it would be just iterating through the CSV header and parsing it into JabRef fields and setting the value. This way it’s completely independent of the number of fields and even supports custom fields.

Rough outline:

  1. Create a CSVImporter class in https://github.com/JabRef/jabref/tree/main/src/main/java/org/jabref/logic/importer/fileformat
  2. Parse the csv (we already have the apache csv parser)
  3. Parse the header csv strings to JabRef Fields https://github.com/JabRef/jabref/blob/d743f52298d40f1ef81331dcff846b31c992667c/src/main/java/org/jabref/model/entry/field/FieldFactory.java#L95-L99
  4. for reach row create a new BibEntry with the fields and set the field and the value

For exporting, we already have our Template Exporters that use our custom layout format and at least we have one for open office csv

1 Like

Thank you Christoph for the warm welcome.
I think I have something to work between the years on your lines above. :slight_smile:
That is good input and stuff to think for me.

Sincerly yours Daniel

1 Like