Version History

Version 0.15.0

Added ooodev.calc Which contains classes for working with Calc documents. Now Calc documents are much easier to work with.

Version 0.14.2

Updates for Forms and Dialogs.

Version 0.14.1

Minor updates for Forms and Dialogs.

Version 0.14.0

Added Form Controls and Form Database Controls. More then 30 new classes for working with forms.

Add several new classes in the adapter module.

Other minor bug fixes and updates.

Version 0.13.7

Added Form Controls and Form Database Controls

Added many new classes in the adapter module.

Renamed StyleObj to StyleT

Renamed UnitObj to UnitT

Version 0.13.7

Added dozens of new classes in the adapter module.

Version 0.13.6

Added subscriber to constructor of many classes in the adapter module.

Version 0.13.5

Event classes now implement dispose method in the adapter module classes.

Version 0.13.4

New options for event classes in the adapter module.

Version 0.13.3

Update to CtlTree for better flat list loading of data.

Other minor bug fixes and updates.

Version 0.13.2

Add new properties to several Dialog control classes.

Add new classes in adapters module.

Version 0.13.0

Dialog Module added. Many new classes for working with dialogs. Many new adapters added into the adapter module.

Other minor bug fixes and updates.

Version 0.12.1

Doc updates, minor bug fixes and updates.

Add guide for installing OooDev as a LibreOffice Extension.

Version 0.12.0

This version saw the removal of lxml as a dependency. Now the Library has no external binary dependencies.

The ooodev.utils.xml_util module was removed and all methods were moved to Ooo Dev Xml package.

If you were using the class directly from the ooodev.utils.xml_util module, you can now use the class from the ooodev_xml.odxml module.

Version 0.11.14

Added FileIO.expand_macro() method that can be used to expand macro paths.

Version 0.11.13

Updates for better support of Lo.this_component in and Lo.XSCRIPTCONTEXT.

Version 0.11.12

Fix bug in Calc.set_sheet_name() that was not working correctly.

Add new parameter to Calc.get_sheet_name() that allows for wrapping of the sheet name in single quotes if it is needed.

Version 0.11.11

Now there is a context manager for macros that set the proper context for the document and OooDev. See 2.10 Loading for Macro Execution.

Version 0.11.10

Updated connection to LibreOffice be more robust. Remote connections have been tested and work.

Version 0.11.9

Fix for potential bug when connection to LibreOffice instance.

Version 0.11.8

Update to allow connections to LibreOffice Snap and Flatpak versions on Linux.

Version 0.11.7

Added env_vars options to Bridge base connectors. Now Environment variables can be passed to the subprocess that connects to LibreOffice. This makes it possible to connect to a snap instance of LibreOffice and pass in PYTHONPATH and other environment variables.

Version 0.11.6

Add environment check to ooodev.utils.paths.get_soffice_path to ODEV_CONN_SOFFICE environment variable is set to LibreOffice soffice.

Update for better support of Lo.this_component in macros.

Version 0.11.5

Remove unused module ooodev.utils.images.

Remove unused dependency Pillow.

Version 0.11.4

Fix for Write.get_cursor() not working correctly in Snap version of LibreOffice in macros.

Version 0.11.3

Fix for Lo.this_component in macros.

Version 0.11.2

Added Calc.print_sheet() method that allows printing of a specified cell range directly to a printer.

Version 0.11.1

Minor tweaks and dependency updates.

Version 0.11.0

Major Refactoring of entire Library. Much improved typing support.

This version now has complete type support. Entire code base has been refactored to support type hints and type checking.

Test have been preformed with pyright to ensure type hints are correct.

Version 0.10.3

Minor bug fixes and updates.

Version 0.10.2

Fix for Chart2 Gradient Fill class.

Version 0.10.1

Minor style bug fixes.

Version 0.10.0

Support dropped for Python 3.7. Now supporting Python 3.8 and up.

Added Calc methods get_cell_protection(), is_cell_protected(), protect_sheet(), unprotect_sheet() and is_sheet_protected().

Other Minor Calc tweaks.

Version 0.9.8

Created lo that also contains LoInst class. This class can create a new LibreOffice instance and connect to it and/or connect to an existing LibreOffice instance and be used for sub-components. This class is for advanced usage. The Lo class is still the recommended way to connect to LibreOffice and under the hood it uses LoInst. See 2.9 Opening Multiple Documents.

Version 0.9.7

Fix ooodev.utils.data_type.size_mm.SizeMM constructor to accept UnitObj as well as float.

Minor bug fixes and updates.

Version 0.9.6

Minor bug fixes and updates.

Version 0.9.5

Minor bug fixes and updates.

Version 0.9.4

Added more than five dozen new classes in ooodev.format.chart2.direct for formatting Chart2 charts.

Added ooodev.office.chart2.Chart2ControllerLock class that can be used to lock and unlock Chart2 charts for faster updating.

Added ooodev.format.calc.direct.cell.numbers.Numbers class that can be used to format numbers styles in Calc cells and ranges.

Added new event to ooodev.utils.props.Props.set(). Now subscribers can be notified when a property set error occurs and handle the error if needed.

Added new event to ooodev.utils.props.Props.set_default(). Now subscribers can be notified when a property set default error occurs and handle the error if needed.

Version 0.9.3

Minor revisions and updates.

Version 0.9.2

Added style options to from ooodev.utils.forms.Forms module methods.

Added Write.create_style_para() that creates new paragraph styles and adds the them to the document paragraph styles.

Added Write.create_style_char() that creates new character styles and adds the them to the document character styles.

Added Write.set_footer() that sets the footer text and style.

Added styles to Write.set_header() that also sets the header style.

Added ooodev.format.writer.direct.page module that contains classes for page header and footer styles that can be used with Write.set_header() and Write.set_footer().

Version 0.9.1

Added theme that access LibreOffice theme properties.

Added Info.get_office_theme() That gets the current LibreOffice theme name.

Added overloads to several Calc methods to allow styles to be applied when setting sheet values.

Version 0.9.0

Added format module with hundreds of new classes for applying styles and formatting to documents and sheets.

Added units module that contains classes for many of the LibreOffice units such as mm units, px units and pt units (and more).

Renamed method GUI.show_memu_bar() to GUI.show_menu_bar()

Fixed issue with Calc.get_sheet_names() when overload with no args was used.

Rename CellObj.col_info to CellObj.col_obj

Rename CellObj.row_info to CellObj.row_obj

All events now can have key value pairs of data added or removed

Added Calc.get_safe_rng_str() method.

Added Info.is_uno() method.

Added Write.style() method.

Added Write.get_cursor() overload.

Added Write.append(cursor: XTextCursor, text: str, styles: Iterable[StyleObj]) overload.

Added Write.style_left(cursor: XTextCursor, pos: int, styles: Iterable[StyleObj]) overload.

Added Write.style_prev_paragraph(cursor: XTextCursor, styles: Iterable[StyleObj]) overload.

Added Write.append_line(cursor: XTextCursor, text: str, styles: Iterable[StyleObj]) overload.

Added Write.append_para(cursor: XTextCursor, text: str, styles: Iterable[StyleObj]) overload.

Added Chart2.style_background() Method.

Added Chart2.style_wall() Method.

Added Chart2.style_data_point() Method.

Version 0.8.6

Added Styles namespace.

Extended Cell Objects with focus on CellValues Class.

Added overload to GUI.set_visible()

Added overload to GUI.set_visible()

Added overload to Calc.get_sheet_names()

Added overload to Calc.set_sheet_name()

Changed Calc.get_sheet(doc: XSpreadsheetDocument, index: int) to Calc.get_sheet(doc: XSpreadsheetDocument, idx: int). index will still work but is not documented.

Changed Calc.remove_sheet(doc: XSpreadsheetDocument, index: int) to Calc.remove_sheet(doc: XSpreadsheetDocument, idx: int) index will still work but is not documented.

Version 0.8.5

Fix for Some Calc related method getting a new doc with the existing doc was expected.

Version 0.8.4

Added methods, Calc.merge_cells(), Calc.unmerge_cells(), and Calc.is_merged_cells()

Version 0.8.3

Many new Overloads in Calc module for range objects.

Several enhancements for range objects.

Version 0.8.2

Added Calc.is_single_column_range().

Added Calc.is_single_row_range().

Added Calc.get_range_size()

Added Calc.get_range_obj()

Added Calc.get_selected_range()

Added Calc.get_selected_cell()

Many enhancements for working with sheet ranges.

Version 0.8.1

Chart2.insert_chart() all parameters made optional, added chart_name parameter.

Added Chart2.remove_chart().

Added Calc.set_selected_addr().

Updated Angle to accept any integer value, positive or negative.

Version 0.8.0

Added Calc.get_col_first_used_index() method.

Added Calc.get_col_last_used_index() method.

Added Calc.get_row_first_used_index() method.

Added Calc.get_row_last_used_index() method.

Added overloads to Calc.get_col().

Added overloads to Calc.get_row().

Calc.get_col() now returns an empty list like Calc.get_row() if no values are found. In previous version it it returned None When no values were found.

Calc.extract_col() now returns an empty list if no values are found. In previous version it it returned None When no values were found.

Version 0.7.1

Minor updates to chart2_types module.

Version 0.7.0

Added Lo.loader_current. Now after Lo.load_office() is called the Lo.loader_current property will contain the same loader that is returned by Lo.load_office()

All methods that are using loader now have a overload to make loader optional.

Calc.open_doc() has new overloads. Now if a file is not passed to open then a new spreadsheet document is returned.

Write.open_doc() has new overloads. Now if a file is not passed to open then a new Writer document is returned.

Version 0.6.10

Now Lo.load_load() has extra options that allow for turning on or off of verbose via the loader. Going forward verbose is off by default.

Added overload to Calc.get_sheet()

Update Props.show_props() to support extra formatting.

Fix bug in Calc.get_function_names()

Removed unnecessary events from

  • Calc.print_addresses()

  • Calc.print_array()

  • Calc.print_cell_address()

  • Calc.print_fun_arguments()

  • Calc.print_function_info()

  • Calc.print_head_foot.print_address

  • Calc.print_head_foot

Version 0.6.9

Added FileIO.uri_absolute()

Added overload to props.get().

FileIO.uri_to_path() now raises ConvertPathError if unable to convert.

Added an enum lookup option to Info.get_paths().

Added utils.Gallery module.

Version 0.6.8

Added utils.adapter namespace and classes.

Version 0.6.7

Add new methods convert_1d_to_2d, get_smallest_str, get_largest_str, get_smallest_int, get_largest_int to TableHelper Class.

Added overload method Lo.print_table(name: str, table: Table, format_opt: FormatterTable)

Updated Lo.print_names() to print output in a table format.

Version 0.6.6

Add overload to Calc.convert_to_floats

Add formatters module for formatting console output.

Added overload method Calc.print_array(vals: Table, format_opt: FormatterTable)

Version 0.6.5

Added overload to FileIo.make_directory that handles creating directory from file path.

Fix for FileIo.url_to_path on windows sometimes not converting correctly.

Other FileIo Minor updates.

Fix bug in Chart2.set_template when diagram_name was passed as string.

Fix bug in Draw.warns_position when no Slide size is available.

Renamed Calc.get_range_str args from start_col, start_row, end_col, end_row to col_start, row_start, col_end, row_end respectively. Change is backwards compatible.

Renamed Calc.get_cell_range args from start_col, start_row, end_col, end_row to col_start, row_start, col_end, row_end respectively. Change is backwards compatible.

Version 0.6.4

Fix for Draw.report_pos_size. Now handles when a shape does not have a Name property an other errors.

Version 0.6.3

Overloads for GUI.get_window_handle()

Removed unused *titles arg from Draw.add_dispatch_shape() method.

Removed unused *titles arg from Draw.create_dispatch_shape() method.

GUI.get_title_bar() method now returns empty string when not able to get title bar text.

Version 0.6.2

Rename private enum _LayoutKind to public LayoutKind to make available for public use.

Added new Fast Lookup methods to Props class.

New Exceptions PropertyGeneralError

Version 0.6.1

Added Draw.add_dispatch_shape() method.

Added Draw.create_dispatch_shape() method.

Added Dispatch Lookup ShapeDispatchKind Enum.

Added None to GraphicArrowStyleKind Enum.

Added classes WindowTitle and DialogTitle for working with GUI packages.

Version 0.6.0

Breaking changes.

Write.ControlCharacter was an alias of ooo.dyn.text.control_character.ControlCharacterEnum. Now ControlCharacterEnum must be used instead of Write.ControlCharacter. ControlCharacterEnum can be imported from Write. e.g. from ooodev.office.write import Write, ControlCharacterEnum

Write.DictionaryType was an alias of ooo.dyn.linguistic2.dictionary_type.DictionaryType. Now DictionaryType must be used instead of Write.DictionaryType. DictionaryType can be imported from Write. e.g. from ooodev.office.write import Write, DictionaryType

Calc.CellFlags was an alias of ooo.dyn.sheet.cell_flags.CellFlagsEnum. Now CellFlagsEnum must be used instead of Calc.CellFlags. CellFlagsEnum can be imported from Calc. e.g. from ooodev.office.calc import Calc, CellFlagsEnum

Calc.GeneralFunction was an alias of ooo.dyn.sheet.general_function.GeneralFunction. Now GeneralFunction must be used instead of Calc.GeneralFunction. GeneralFunction can be imported from Calc. e.g. from ooodev.office.calc import Calc, GeneralFunction

Calc.SolverConstraintOperator was an alias of ooo.dyn.sheet.solver_constraint_operator.SolverConstraintOperator. Now SolverConstraintOperator must be used instead of Calc.SolverConstraintOperator. SolverConstraintOperator can be imported from Calc. e.g. from ooodev.office.calc import Calc, SolverConstraintOperator

Calc.FillDateMode was an alias of ooo.dyn.sheet.fill_date_mode.FillDateMode. Now FillDateMode must be used instead of Calc.FillDateMode. FillDateMode can be imported from Calc. e.g. from ooodev.office.calc import Calc, FillDateMode

Version 0.5.3

Lo.dispatch_cmd Now returns the result of the dispatch command if any. Formerly a bool was returned.

Lo.dispatch_cmd Now raises DispatchError if an error occurs.

Version 0.5.2

Chart Samples and tests

Misc code tweaks.

Version 0.5.1

Chart 2 Samples and tests.

Version 0.5.0

New modules

  • Draw

  • Chart

  • Chart2

Added utils.dispatch which as several new classes for looking up dispatch values.

Misc bug fixes.

Version 0.4.19

Fix bug in setup.py

Version 0.4.17

Update to Write:

  • new method split_paragraph_into_sentences

  • new overloads for print_meaning

  • new overloads for print_services_info

  • new overloads for proof_sentence

  • new overloads for spell_sentence

  • new overloads for spell_word

  • load_spell_checker now load spell checker from com.sun.star.linguistic2.SpellChecker

Version 0.4.16

Fixes for Write spell checking

Version 0.4.15

Update Graphic methods to move away from GraphicURL

Other minor bug fixes.

Version 0.4.14

Minor fix in Write.set_page_numbers

Version 0.4.13

Fix for Write.add_text_frame() events.

Version 0.4.12

Add defaults for cfg in case config.json is not available.

Version 0.4.11

Fix bug in Lo.print_names()

Remove internal events from some print functions that should not have had them.

Fix bug that did copy config.json during setup.

Version 0.4.10

Add new event_source property to internal event classes.

Version 0.4.9

Added a Bridge Connector Lo.bridge

Added Session class for registering and importing. See example: Shared Library Access

Version 0.4.8

New listeners in ooodev.listeners namespace

Fix For Lo.XSCRIPTCONTEXT

Version 0.4.7

Added minimize(), maximize() and activate() methods to GUI class.

Version 0.4.6

Updates and fixes for Info class.

Version 0.4.5

Added BreakContext class.

Version 0.4.4

Bug fix reading document properties.

Version 0.4.2

Fix bug in windows connections

Version 0.4.1

Fix bug in Info. Some methods were expecting string but got Path object.

Version 0.4.0

New more flexible and robust way of connecting to office.

This update change Lo.load_office() method

Paths used internally now automatically resolve to absolute paths.

Version 0.3.0

Write module released

Version 0.2.0

Initial release with full support for calc.