UPDATE: Python bindings for the user API

This commit is contained in:
Nicolás Hatcher
2025-06-07 15:37:22 +02:00
committed by Nicolás Hatcher Andrés
parent faa0ff9b69
commit 07854f1593
12 changed files with 247 additions and 34 deletions

View File

@@ -0,0 +1,210 @@
Raw API Reference
-----------------
In general methods in IronCalc use a 0-index base for the the sheet index and 1-index base for the row and column indexes.
.. method:: evaluate()
Evaluates the model. This needs to be done after each change, otherwise the model might be on a broken state.
.. method:: set_user_input(sheet: int, row: int, column: int, value: str)
Sets an input in a cell, as would be done by a user typing into a spreadsheet cell.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index (first row is 1).
:param column: The 1-based column index (column “A” is 1).
:param value: The value to set, e.g. ``"123"`` or ``"=A1*2"``.
.. method:: clear_cell_contents(sheet: int, row: int, column: int)
Removes the content of the cell but leaves the style intact.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index (first row is 1).
:param column: The 1-based column index (column “A” is 1).
.. method:: get_cell_content(sheet: int, row: int, column: int) -> str
Returns the raw content of a cell. If the cell contains a formula,
the returned string starts with ``"="``.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param column: The 1-based column index.
:returns: The raw content, or an empty string if the cell is empty.
.. method:: get_cell_type(sheet: int, row: int, column: int) -> PyCellType
Returns the type of the cell (number, boolean, string, error, etc.).
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param column: The 1-based column index.
:rtype: PyCellType
.. method:: get_formatted_cell_value(sheet: int, row: int, column: int) -> str
Returns the cells value as a formatted string, taking into
account any number/currency/date formatting.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param column: The 1-based column index.
:returns: Formatted string of the cells value.
.. method:: set_cell_style(sheet: int, row: int, column: int, style: PyStyle)
Sets the style of the cell at (sheet, row, column).
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param column: The 1-based column index.
:param style: A PyStyle object specifying the style.
.. method:: get_cell_style(sheet: int, row: int, column: int) -> PyStyle
Retrieves the style of the specified cell.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param column: The 1-based column index.
:returns: A PyStyle object describing the cells style.
.. method:: insert_rows(sheet: int, row: int, row_count: int)
Inserts new rows.
:param sheet: The sheet index (0-based).
:param row: The position before which new rows are inserted (1-based).
:param row_count: The number of rows to insert.
.. method:: insert_columns(sheet: int, column: int, column_count: int)
Inserts new columns.
:param sheet: The sheet index (0-based).
:param column: The position before which new columns are inserted (1-based).
:param column_count: The number of columns to insert.
.. method:: delete_rows(sheet: int, row: int, row_count: int)
Deletes a range of rows.
:param sheet: The sheet index (0-based).
:param row: The starting row to delete (1-based).
:param row_count: How many rows to delete.
.. method:: delete_columns(sheet: int, column: int, column_count: int)
Deletes a range of columns.
:param sheet: The sheet index (0-based).
:param column: The starting column to delete (1-based).
:param column_count: How many columns to delete.
.. method:: get_column_width(sheet: int, column: int) -> float
Retrieves the width of a given column.
:param sheet: The sheet index (0-based).
:param column: The 1-based column index.
:rtype: float
.. method:: get_row_height(sheet: int, row: int) -> float
Retrieves the height of a given row.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:rtype: float
.. method:: set_column_width(sheet: int, column: int, width: float)
Sets the width of a given column.
:param sheet: The sheet index (0-based).
:param column: The 1-based column index.
:param width: The desired width (float).
.. method:: set_row_height(sheet: int, row: int, height: float)
Sets the height of a given row.
:param sheet: The sheet index (0-based).
:param row: The 1-based row index.
:param height: The desired height (float).
.. method:: get_frozen_columns_count(sheet: int) -> int
Returns the number of columns frozen (pinned) on the left side of the sheet.
:param sheet: The sheet index (0-based).
:rtype: int
.. method:: get_frozen_rows_count(sheet: int) -> int
Returns the number of rows frozen (pinned) at the top of the sheet.
:param sheet: The sheet index (0-based).
:rtype: int
.. method:: set_frozen_columns_count(sheet: int, column_count: int)
Sets how many columns are frozen (pinned) on the left.
:param sheet: The sheet index (0-based).
:param column_count: The number of frozen columns (0-based).
.. method:: set_frozen_rows_count(sheet: int, row_count: int)
Sets how many rows are frozen (pinned) at the top.
:param sheet: The sheet index (0-based).
:param row_count: The number of frozen rows (0-based).
.. method:: get_worksheets_properties() -> List[PySheetProperty]
Returns a list of :class:`PySheetProperty` describing each worksheets
name, visibility state, ID, and tab color.
:rtype: list of PySheetProperty
.. method:: set_sheet_color(sheet: int, color: str)
Sets the tab color of a sheet. Use an empty string to clear the color.
:param sheet: The sheet index (0-based).
:param color: A color in “#RRGGBB” format, or empty to remove color.
.. method:: add_sheet(sheet_name: str)
Creates a new sheet with the specified name.
:param sheet_name: The name to give the new sheet.
.. method:: new_sheet()
Creates a new sheet with an auto-generated name.
.. method:: delete_sheet(sheet: int)
Deletes the sheet at the given index.
:param sheet: The sheet index (0-based).
.. method:: rename_sheet(sheet: int, new_name: str)
Renames the sheet at the given index.
:param sheet: The sheet index (0-based).
:param new_name: The new sheet name.
.. method:: test_panic()
A test method that deliberately panics in Rust.
Used for testing panic handling at the method level.
:raises WorkbookError: (wrapped Rust panic)