Skip to main content

SheetDocument

Struct SheetDocument 

Source
pub struct SheetDocument {
    pub document: Document,
    /* private fields */
}
Expand description

An OpenDocument spreadsheet.

Fields§

§document: Document

The package and everything shared with the other two formats.

Implementations§

Source§

impl SheetDocument

Source

pub fn restructure( &mut self, sheet: usize, change: Restructure, ) -> Result<(), Blocked>

Insert or delete rows or columns of a sheet, with the formulas that refer to the cells moved to follow.

Nothing is changed unless all of it can be: the change is made to a copy of the content, which replaces the content only when it is done.

§Errors

Blocked says what is in the way.

Source§

impl SheetDocument

Source

pub fn read(bytes: &[u8]) -> Result<Self, Error>

Read a .ods package.

§Errors

The bytes are not a spreadsheet, or its content.xml cannot be read.

Source

pub fn sheets(&self) -> &[Sheet]

The sheets, in the order the document holds them.

Source

pub fn reindex(&mut self)

Rebuild the index after the content tree has been replaced under it, which is what undo does.

Source

pub fn can_edit( &self, sheet: usize, row: usize, column: usize, ) -> Result<(), Refused>

Whether a cell may be written, which is what Self::set_cell asks first and what a window asks before it opens an editor.

§Errors

The cell is under a neighbour’s span, holds a formula, or the sheet does not exist.

Source

pub fn set_cell( &mut self, sheet: usize, row: usize, column: usize, value: &Value, ) -> Result<(), Refused>

Put a value in a cell, by sheet, row and column, all counting from zero.

A row or a cell the document wrote once with a repeat count is split into the run before, the one, and the run after, with the counts fixed, so that the one cell changes and its neighbours in the run keep what they had. A row or cell past what the document wrote is created, with a repeated empty run filling the gap. The cell’s own attributes and paragraphs are replaced; its style, and anything else in it, stay.

§Errors

The cell is under a neighbour’s span, holds a formula, or the sheet does not exist. Nothing is changed in any of those cases.

Source

pub fn cell(&self, sheet: &Sheet, row: usize, column: usize) -> Option<Cell<'_>>

One cell, by sheet, row and column, all counting from zero.

None for a cell the document never wrote, which is the usual answer past the edge of the used range and means an empty cell rather than an error.

Source

pub fn row_element(&self, sheet: &Sheet, row: usize) -> Option<&Element>

The table:table-row element a row number falls in.

Source

pub fn row_height(&self, sheet: &Sheet, row: usize) -> Option<Length>

A row’s height, where its style gives one.

Source

pub fn cell_style( &self, sheet: &Sheet, cell: Option<&Cell<'_>>, column: usize, ) -> Rc<Properties>

The resolved style of a cell: the style it names, or the one its column gives every cell that names none.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.