A great open-source office suite alternative to Microsoft Office

LibreOffice for Mac

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Download LibreOffice 7.2.1

  -  266.9 MB  -  Open Source

What's new in this version:

General improvements:
- Alphabetical indexes, tables of contents and user-defined indexes will now generate clickable hyperlinks to document index entry marks core ckground fills can now be set to either cover the page inside the margins or the entire page core
- Page styles can now have a gutter margin blog post
- Bibliography improvements: tooltip for bibliography entry fields and clickable URLs in the bibliography table blog post
- Added label and business card paper (A-One, Hisago, Sanwa Supply, Daiso) data used in Japan. This work is based on data included in the "Default Settings for Japanese" extension, which was developed mainly by Masahisa Kamataki. core
- The Word-compatible table border painting now has better support for merged cells blog post
- As-char images can now have a size larger than 65k twips (about 116 cms) blog post
- When Writer document is exported to PDF, links between anchors and footnotes or endnotes (even if not on the same page) are now available in both directions core  core
- Support for list format strings in ODT files: right now complex numbering rules from DOCX are supported also for ODT core
- Spell-checking for indices is disabled now (language set to None for paragraph style Index and children)
- Image file type is now displayed in the Image Properties dialog (Format ▸ Image ▸ Properties... ▸ Image), not just the Compress dialog.

- User will see a warning about nonexistent data sources instead of producing empty fields. There is a button to fix the problem  core
- Performance:
- Improved font caching to speed up text rendering core .
- Reduced opening time for some DOCX file

RDF metadata in Style Inspector:
- Style Inspector shows ODF 1.2 RDF metadata of annotated text ranges (text:meta), metadata fields (text:meta-field), paragraphs (text:p and text:h) and bookmarks (text:bookmark-start). core , core , core .

Custom color metadata field shadings:
- It's possible to set a custom shading color for an annotated text range or a metadata field e.g. for visualization of metadata categories in the document editor. Ctrl-F8 or View ▸ Field Shadings disable/enable these colorful field shadings.

General improvements:
- Fixed problems with pasting filtered cells and pasting with transpose. Also added many unit tests for those cases,,,,,
- Added mixed date format "Common Year (Era Name)" and "Era Name (Common Year)" for cell format in Japanese locales. core
- Added traditional Japanese month names to sort lists in Japanese locales. core
- Implemented the Kahan summation algorithm to reduce the numerical error in the total for some Calc functions
- HTML tables listed in the External Data dialog (Sheet ▸ Link to External Data...) now show the table's caption to help identify them
- The 'fat-cross' cursor was introduced. To enable, go to Tools ▸ Options ▸ Calc ▸ View and check "Themed" (the cursor follows the icon theme); use System to keep the conventional arrow pointer. (Sarabjot Singh, Mesut Çifci)
- The Paste Special dialog (Edit ▸ Paste Special ▸ Paste Special...) has been redesigned, and the new preset "Formats Only" was added.
- New options "Select Visible Rows Only" and "Select Visible Columns Only" to deselect hidden cells (in Edit ▸ Select menu)
- Descriptive Statistics (Data ▸ Statistics ▸ Descriptive Statistics...) now uses the input range's column labels to label the results
- Improvements in auto-input by making its behaviour closer to popular Calc alternatives

Autofilter improvements:
- Calc shows blue row numbers for filtered rows by Autofilter
- Calc now highlights an active autofilter dropdown arrow
- AutoFilter dropdown button now scales according to sheet zoom level core
- Calc now can filter by color in Autofilter (both cell background color and text color), importing from and exporting to OOXML format are also supported

New spreadsheet functions:
Changed spreadsheet functions:
- CELL() now evaluates the top left cell of a given cell range argument as second parameter instead of the usual intersecting position for scalar parameters, for interoperability and compliance with the ODF OpenFormula standard definition.(Eike Rathke, Red Hat)
- RAWSUBTRACT() now processes arguments from left to right. Previously, RAWSUBTRACT(1;2;3;4) calculated 1-4-3-2 as encountered on the arguments stack. That was changed to calculate 1-2-3-4 in "natural" left to right order as may be expected. This may make a difference like in =RAWSUBTRACT(0.3;0.2;0.1;-0.1;-0.2;0.3) where the result previously was 2.77555756156289E-17 (calculated as (0.3-0.3--0.2--0.1-0.1-0.2) == (0.0--0.2--0.1-0.1-0.2) same as =RAWSUBTRACT(0;0.2;0.1;-0.1;-0.2)), for which the first result now is 0 (calculated as (0.3-0.2-0.1--0.1--0.2-0.3)) and =RAWSUBTRACT(0;0.2;0.1;-0.1;-0.2) result now is -2.77555756156289E-17.
- ROUND() has its artificial limitation on the second parameter (rounding position) removed, for which the argument previously had to be in the interval [-20,20] and otherwise the function returned error.

- Improved speed of pasting formulas with VLOOKUP function
- Improved speed of some XLSX file opening and scrolling
- Improved speed when filtering
- Improved file opening speed for some big XLSX files

Document Conversion:
- The --convert-to csv:... command line spreadsheet conversion or export filter options string accepts a new optional 12th numeric parameter, which makes it possible to export the entire document to individual sheets .csv files or a specified sheet.

For example:
- soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,-1 sample.ods
- 0 or absent means the default behaviour, first sheet from command line, or current sheet in macro filter options, exported to sample.csv
- -1 for all sheets, each sheet is exported to an individual file of the base file name concatenated with the sheet name, for example sample-Sheet1.csv, sample-Sheet2.csv and sample-Sheet3.csv
- 2 or any other 1-based number within the range of number of sheets for one specific sheet, here sample-Sheet2.csv

Impress & Draw:
General improvements:
The set of default templates was refreshed:
- Removed: Alizarin, Bright Blue, Classy Red, Impress, Lush Green (introduced in 4.4)
- Added: Candy, Freshes, Grey Elegant, Growing Liberty, Yellow Idea
- All background fills can now be set to either cover the page inside the margins or the entire page core  (Michael Stahl, allotropia).
- Improve and fix drawing of dashed lines in presentation mode
- Multiple columns in LibreOffice text boxes a blog post
- PDF signature verification is now based on PDFium blog post

User Interface:
- Direct access to the document's scaling factor via statusbar in Draw
- Improved export dialog for PNG and JPG clarifies the distinction between dimensions and resolution.

- Improve document loading times by loading large images on-demand
- Improve slide rendering speed by prefetching large images
- Faster drawing of semi-transparent images core

Data Series Labels:
- Adding series name to data series label is now possible

"Moving Average" Trendline:
- For "Moving average" trend line, the type can now be selected
- Prior (default)
- Central
- Averaged Abscissa

- It's now possible to scale the code input box. see (Dante DM)

The setting is accessible from expert configuration as: org.openoffice.Office.Math.smeditwindowzoom
- The setting is accessible from math options panel as: Tools ▸ Options ▸ LibreOffice Math ▸ Settings ▸ Scaling code input window

Core / General:
- Built-in development tools with a "Xray" like UNO object inspector part1 part2 part3
- Selecting form fields inside a document is now possible using Alt+
- The C++ library used to generate QR codes was changed from qrcodegen to ZXing
- StarViewMetafile Format (SVM) was improved: When handling I stumbled upon a never identified bug: When using ScaledText, the export to SVM is System-dependent due to the differing internal representation in the Font-MetafileAction. Thus, the SVM content differs if it was written on a Windows or non-Windows System, which leads to errors when exchanging SVM-based Metafiles between those systems (details in the task ([1]) ). Due to SVM being used partially as Metafile-Format in saved files (e.g. ODF variants), this was leading to 'strange' looking SWcaledText's. ScaledText is luckily not too often used, but e.g. heavily in Chart Labels which were most obviously hit by this. Since SVM is our own format, this could be enhanced by adding information to the SVM-Format in a backward compatible way. After the fix, all newly written SVM-Files can be exchanged now between LibreOffice Versions containing that fix without that error. For already existing files this is not always possible, see this Table ([2]) (2nd half) for details.
- EMF/WMF Metafile Formats were improved: When handling and correcting the SVM format (see above), I also found out that the same error is in the EMF/WMF files that we write. These formats are Windows-specific formats, what makes the versions written under Windows the valid ones. The definitions for EMF/WMF are not in our hands, so I had to fix that differently. A fix is not only important for flawless data exchange between LibreOffice Versions, but also with all kinds of Windows-Applications that use EMF/WMF as DataType. After the fix EMF/WMF is always produced in Windows-conform form for ScaledText. This leads to this working data exchange Table ([3]).
- Detect wrong written old EMF/WMF Metafile Files: To not have to accept old wrong written files, I added a kind of 'Old-Emf-Wmf-Format-Detector' that uses fuzzy evaluation and corrects old files when loaded in LibreOffice from now on. This makes the exchange between EMF/WMF written by old and new LibreOffice Versions complete: no old written files are lost or need to be reproduced. This is unfortunately not possible for other Windows-Applications, so these EMF/WMF files produced by older non-Windows LibreOffice Versions have - as a workaround - e.g. be loaded and rewritten by a LibreOffice Version containing these fixes.
- Enhancements for linked OLE in Documents: The content of the OLE Data/File is now synchronized to saving the hosting Document. Before this change, the OLE Data/File for a linked OLE was always saved/changed when the OLE was changed at deactivating it. This is unexpected and not intuitive from a User's point of view. There were complaints from a User who by purpose did *not* save the hosting Document after changing the OLE in it - in the expectation that the OLE Data/File will not be touched that way and stay the same when embedding it again. With this change (for details see) changing the linked OLE is delayed (using a temporary file) until the hosting Document is saved. If the hosting Document is closed without saving (or the Office crashes), the linked OLE does not get saved/changed at all. This is more conform to user's expectations when changing Document-bound Data.
- Various fixes when using the Skia-based drawing backend
- Fixed rendering of CJK text when using the Skia-based drawing backend
- Text boxes got multi-column feature in all modules
- In the Security Options dialog, choosing "Remove personal information on saving" now removes names and dates from comments and tracked changes

- Improved drawing speed with large images
- Improved text rendering speed when using font fallback core
- Improved interactivity of slow drawing operations with repeated user input core
- Various drawing speed improvements when using the Skia-based drawing backend
- Improve document loading speed by using zlib optimized crc32 core
- Improved swapping speed and memory consumption of graphics

LibreOffice Help:
Improvements of DOC import/export filter:
- DOC import: it was fixed chapter numbering
- DOC import: it was fixed Z-order of objects
- DOC import: it was fixed some DOC file in 64 bit system
- DOC export: it was fixed a loss of the outline level

Improvements of DOCX import/export filter:
- DOCX: import discarded headers/footers. Before the inactive DOCX headers/footers lost during import time. Now it can be restored by disabling the options “Same content on left and right pages” and “Same content on first page” on the Header and the Footer panes of the Page style. This is for improving the interoperability with other Office programs, e.g. supporting DOCX text document templates better.
- DOCX: rtlGutter is supported now
- DOCX: export NONE background for ParaBackColor
- DOCX: fix lost tables in footnotes and endnotes by converting them to floating tables during the import, and removing floating at the DOCX export
- DOCX export: save header image once. Writer used to dump the same image file as many times as it was featured in different headers or footers in the document, bloating the .docx file size
- DOCX table import: fix extra page break
- DOCX: fix handling for effect extent vs line width
- DOCX export: put fly before fieldmark start into its own run
- DOCX import: fix missing tblPrEx border of first table cells. Now property set of a new cell is a copy of the table exception property set of the table row, as needed for the import of the table style inheritance
- DOCX export: always write title page in section props. Even if page description is not set we should try to mark title page because chaining of two page styles can not work for continuous sections
- DOCX export: fix missing page break. When an empty paragraph has both page break and section break, only the section break was exported to DOCX, the page break was not, while MSO needs that to show all page breaks.
- DOCX import: fix frame direction. Frames used to be imported with zero rotation even if a w:textDirection tag explicitly called for a non-default orientation.
- DOCX import: fix slow endnote import by parsing endnotes.xml only once instead of parsing again and again for every endnotes. This was a serious performance problem for documents with hundreds of endnotes, where the endnote import took minutes instead of seconds.
- DOCX: fix page margins imported as border padding. Trying to import non-existing "none" borders of w:pgBorders zeroed page margins, removing their values to border padding.
- DOCX import: preserve formatting of CREATEDATE fields. The create date of a document doesn't really change, so we can only loose if the cached result of the field is not preserved.
- DOCX table import: fix zero para top margin when only w:beforeAutospacing=0 was specified, but not PARA_TOP_MARGIN (see default_spacing = -1 in processing of LN_CT_Spacing_beforeAutospacing).
- DOCX: added import/export support for Hebrew/Arabic numbering Types
- DOCX export: now Writer saves russianUpper/russianLower numbering
- DOCX export: stop duplicating stuff in postponed text
- DOCX: import and export Resolved state of comments
- DOCX export: fix missing border of frame
- DOCX import: fix frame positions of old docs by limiting AddFrameOffsets compatibility option for docs created by MSO 2010 or older.
- DOCX: export hidden (shared) headers/footers
- DOCX: import track changes of inline images
- DOCX import: fix lost column break at shapes. The column break was moved into the neighboring shape during the first import, and eliminated during the second import, losing the 2-column text layout. As a workaround, split the paragraph moving the column break into a new paragraph.
- DOCX: support tracked table (row) deletion.
- DOCX c15: TabOverMargin no longer true in 2013+
- DOCX import: fix anchored obj position with to-char and TEXT_LINE
- DOCX import: improvements for first line indent in lists
- Improvements of XLSX import/export filter
- XLSX import: set filtered flag for rows hidden by AutoFilter to support copying the result of filtering. Unlike ODS and XLS, XLSX doesn't differentiates filtered and manually hidden rows, and without this fix, copy of the unupdated data of the loaded filtering contained the hidden rows, too.
- XLSX import: fix lost rounded filters if the stored filter values are in the visible cell format (e.g. rounded values) instead of the original (editing) values. Now AutoFilter popup window shows the items according to the visible cell format (e.g. 1.0 instead of 1.01 or 0.99), but still grouping them based on the "editing format" (e.g. not rounded values which visible during editing), i.e. there could be repeated values in the filtering conditions (e.g. two options "1.0" and "1.0" for 1.01 and 0.99).,
- XLSX import: fix missing datetime filters by convert string representation of the datetime data to ISO 8601 (with blank instead of T) datetime to eliminate locale dependent behaviour when filtering for datetimes.
- XLSX import: apply more than 8 filters in OOXML autofilter import by removing the artificial limit (which looked like the limit for conditions handled by the standard filter in LO, but not for the autofilter). Now the autofilter popup menu does not always select all items, if the document contained more than 8 selected items there.
- XLSX import: fix conditional formatting in same cell range. Multiple conditional formatting rules of the same cell range were imported incorrectly because of missing handling of their (different) priorities and operators.
- XLSX export autofiltered date columns. Export XML_dateGroupItem, XML_year, XML_month, XML_day, XML_dateTimeGrouping based on the OOXML standard.
- XLSX export: fix proliferation of conditional styles. Run-time created styles “ExtConditionalStyle_N N” for extended conditional styles were written back to the XLSX file, growing the cell style list by each save-reload with unused styles.
- XLSX import: fix autofiltered date columns by importing dateGroupItem.
- XLSX export: fix lost file names in modified links.
- XLSX export: fix position of rotated images
- XLSX import: fix "Formula is" type conditional formatting rule when the formula contains a reference to another worksheet
- XLSX: fix "begins/ends with" conditional formatting when using "Given text" type and cell reference
- XLSX export: fix "contains" conditional formatting when using "Given text" type with cell reference instead of fixed string. Fix also "notContainsText", and prepare the fix for "beginsWith", "endsWith" and "expression" type conditions
- XLSX import: hide hidden named range of autofilter

Improvements of PPTX import/export filter:
- PPTX import: fix WordArt effect textDeflate and textInflateTop. These effects were mapped incorrectly, resulting missing display and after ODP round-trip, changed effects.
- PPTX import: fix lost direct hyperlink colors.
- PPTX table export: fix vertical alignment.
- PPTX wordart 3D, add sp3d.
- Shadow for tables from PPTX in Impress
- Import support for graphics cropped into custom geometry
- Import support for crop position of the custom cropped graphics
- Import support for greyscale effect of the custom cropped graphics.blog post core
- Import support for mirror effect of the custom cropped graphics
- Import support for custom stretch values of the custom cropped graphics.blog post core
- PPTX export: fix placeholders. Empty placeholders were exported as white empty custom shapes, losing their visibility and usability.,
- PPTX import: fix internal hyperlink to slide. Internal hyperlinks were lost, if they refer slides using their names.
- PPTX export: fix internal hyperlinks exported as external by accident: after reloading the bad export, clicking on the hyperlink opened the same file in another document, because the exported link contained also the full file name reference instead of the slide name, according to the OOXML Relationship TargetMode="External".
- PPTX import: fix duplicated slide name.
- PPTX animation: export repeatCount
- PPTX: fix custom slide show is not imported
- PPTX: fix missing custom slide show export
- Improvements of WMF/EMF filter
- Add support for import WMF and EMF images, generated by LTSpice
- Add support for import EMF images, created by CATI
- Add support for import EMF files generated by ESRI ArcMap 2004
- EMF FILLRGN record is displayed correctly now
- Complex clipping for EMF is implemented
- EMF Implement PAINTRGN record support
- EMF: Improve performance of FILLRGN, PAINTRGN, EXTSELECTCLIPRGN records
- WMF EMF Fix RestoreDC record according to MS specification
- EMF: Add rotation support for INTERSECTCLIPRECT, ARC, ARCTO, CHORD, PIE and ROUNDRECT support
- EMF Fix displaying of ARC, CHORD and PIE
- WMF: Add support for selecting colors from palette
- WMF/EMF: Fix drawing lines with different width
- WMF: Add implementation of BitBlt and StretchBlt records
- WMF: Preserve both non-EMF+ and EMF+ drawing commands during a load/save roundtrip core
- EMF+: Add brush support to DrawString record
- EMF+ Add alignment support for DrawString
- Improvements of SVG filter:
- A slide with a custom background is exported correctly now core  
- It is possible to export a slide with a bitmap as background core  
- The background is exported in an optimized way. If several slides share the same bitmap as background the bitmap is exported only once. In the same way if a background is made up of tiles where all tiles are the same bitmap, the bitmap is exported only once. The same improvement has been provided for backgrounds made up with patterns or hatches core  

- New command popup HUD ("Heads-up display") to search for and execute actions. It can be invoked with the menu Help ▸ Serch Commands or the shortcut ⇧ Shift+Esc.blog
- Global toolbar lock can now switched off via View ▸ Toolbars
- Alternative Tools ▸ Options ▸ LibreOffice ▸ Application Colors theme 'LibreOffice Dark' added.

Icon theme:
- Templates dialog got a list view. You can sort templates by name, category, date, modules, size, etc.
- File ▸ Properties... ▸ General ▸ Location is now a clickable link to the folder, in case of local files

- Fontwork panel was added.

- Now it is easier to find style using the new scrollable style picker

- New languages/locales with locale data:
- Available as default document language and for locale specific formatting
- English (Denmark) {en-DK}
- Using ',' comma decimal separator and '.' dot group separator
- ISO 8601 date(+time) formats.
- Inheriting calendar from {en-GB} (week-1stweek=4 first_weekday=2)
- Currency DKK 'kr.' symbol
- Secondary currency EUR '€' symbol
- Additional languages in the language list:
- Available for text attribution:
- Pali Thai {pi-Thai} in the CTL language list.
- Cabécar {cjp-CR} and Bribri {bzd-CR}.
- Sesotho {st-LS} (as spoken in Lesotho).
- Improvements to proofing tools and language support:
- Esperanto spelling dictionary and thesaurus
- A major update of Czech spelling dictionary: thousands of words have been added (based on the frequency of missing words in corpora), modified (fixes of incorrect forms) or removed (including rarely used correct forms that can be confused with mistyped forms). For more details in Czech, see this blogpost or the README file.
- The [NatNum12] number format code modifier now supports all day and month names, abbreviated or full or initials, with its upper, lower, capitalize and title keywords. The lower keyword is new, see also.

- [NatNum12 MMM=upper]MMM-DD displays a format JAN-01
- [NatNum12 MMMM=lower]MMMM displays a format january
- [NatNum12 MMMM=capitalize]MMMM displays a format January (meant for locales where the month name is in only lower case letters)
- Note that none of the NatNum12 modifier rules and spell-out options can be exported to Excel or Word or other file formats than ODF (OpenDocument Format).

The ScriptForge libraries:
- An extensible and robust collection of macro scripting resources for LibreOffice to be invoked from user Basic or Python scripts
- The libraries expose a total of 21 services with each a bunch of methods and properties

New in LibreOffice 7.2:
- The DialogControl service supports tree controls including the OnNodeSelected and OnNodeExpanded events.
- The document management part is enriched with the new Form and FormControl services. A form and its subforms may be located in a Base, Writer or Calc document.
- The whole set of services (except for those functions that are better handled by Python natively) is made available for Python scripts with identical syntax and behaviour as in Basic. In addition, a set of methods is provided compatible with their homonymous Basic builtin functions (MsgBox, CreateUnoService, ...). ScriptForge also integrates the APSO shell console, providing the previous installation of the APSO extension.
- The english version of the documentation of the ScriptForge libraries (7.2) has been fully integrated in the LibreOffice help pages. Their translation into other languages is underway.

- The InStr and Replace functions now support the case-insensitive operation for non-ASCII characters using the application locale. and
- Exporting a macro under File ▸ Export Basic, writes the resulting *.bas file using the UTF-8 charset including the BOM. Importing a macro under File ▸ Import Basic, checks if the BOM is present, and decides whether the *.bas file will be imported using the system or the UTF-8 charset.
- Python
- The Python version shipped with LibreOffice has been upgraded to 3.8.10 core Jan-Marek Glogowski, CIB)
- Feature Removal / Deprecation:
- Remove VLC in avmedia: it has been experimental since 2015 and no real patch since 2013
- OpenGL-based drawing code has been removed in favor of Skia/Vulkan

Platform Compatibility:
- You can now use wildcards when converting documents from command line

For example, the following command converts all documents with .doc extension in C:DocsIn directory to ODF format:
- soffice.exe --headless --convert-to odf --outdir C:DocsOut C:DocsIn*.doc
- LibreOffice can now check default file format association for ODF formats on startup

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.