I'm trying to find a tool which can fit my needs in the management of a list a scientific papers I read during my phd thesis. For each paper I collect title, authors, write a summary, give tags...

I want a spreadsheet tool like LibreOffice Calc or Microsoft Excel but with features from SQL database clients.

I found 2 kind of tools : SQL clients (like DBeaver) and Spreadsheet tools, but none meets all needs.

Actually I have ~100 papers on rows in my LibreOffice Calc file, and some features described below are very simple but missing.

  • Easy control of cells size, can display the entire content of a cell just by clicking on... In a nutshell an ergonomic way to navigate / display cells knowing that some has a lot of text in and other hasn't.
  • Column selection in a checkbox (Hide/Display) like we can do in a file explorer.
  • Filtering /sorting by years for example.
  • Filtering by list of tags (or list of keywords). For example a paper can have multiple tags like #network, #machinelearning, #topicmodeling. The filter could allow the user to click on tags in a checkbox which filter lines by requesting "the line must contain #tag1 OR #tag2". There is the "AutoFilter" in all spreadsheet tools but doesn't allow multiple keys.

And unfortunately in spreadsheet tools it is easy to break all database coherence, I recently tried to sort by the "year" column and Calc just moved all years of all lines without keeping titles and others on the corresponding line. I know I don't use the tool well but I wanted a tool wich can secure my data and prevent mistakes like this...

  • You know that there are specialized tools for exactly your use case. And you can then also export to formats like bibtex etc ...
    – pLumo
    Apr 25 '18 at 17:54
  • en.wikipedia.org/wiki/…
    – pLumo
    Apr 25 '18 at 17:56
  • I use Mendeley but here I need an other complementary tool to write my own columns, here my columns : Title, Authors, Year, Objectif, Technics, Metrics & baselines, Datasets, Summary, Interest, Tags, Misc notes...
    – hayj
    Apr 25 '18 at 17:58
  • For example, I need to compare metrics (so display the "metrics" column with the "title" column) for papers with #machinelearning OR #rec tags, in a single user interface like a spreadsheet.
    – hayj
    Apr 25 '18 at 18:07
  • My guess is that Calc can do most or all of these things, but it may not be obvious how to. Apr 25 '18 at 18:34

A form in LibreOffice Base can ensure data consistency. However, doing everything you described in Base requires careful design and likely some macro programming.

As stated in the comments, Calc can do most or all of these things. Consider the following.

cell with partially hidden text

The small red arrow shows that there is more text that cannot be seen. Double-click on the line in between column A and column B to auto resize. Or, to see the entire text without changing width, select cell A1 to see the text in the formula bar.

expanded column and formula bar

To filter by multiple tags, select the entire table and go to Data -> More Filters -> Standard Filter.

standard filter

Similarly, we can filter by a year range.

year range

To show/hide each column, you could write a macro that displays a dialog similar to "Choose Details" in file explorer. The easiest way would be to use a single listbox allowing multiple selection, although that would not look as good as checkboxes.

To do this, first create the dialog by going to Tools -> Macros -> Organize Dialogs. Then write Basic or Python code to execute it. If you try it but get stuck, post the code you have so far on stackoverflow.

Java is a solid alternative, although the disadvantage is that the code is more complex, and it must be compiled using the LibreOffice SDK. Javascript is also possible, but I would not recommend it because there are few resources on how to do it, and the implementation is buggy.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.