Skip to main content

Crate calamine_styles

Crate calamine_styles 

Source
Expand description

Rust Excel/OpenDocument reader

§Status

calamine is a pure Rust library to read Excel and OpenDocument Spreadsheet files.

Read both cell values and vba project.

§Examples

use calamine::{Reader, open_workbook, Xlsx, Data};

// opens a new workbook
let mut workbook: Xlsx<_> = open_workbook(path).expect("Cannot open file");

// Read whole worksheet data and provide some statistics
if let Ok(range) = workbook.worksheet_range("Sheet1") {
    let total_cells = range.get_size().0 * range.get_size().1;
    let non_empty_cells: usize = range.used_cells().count();
    println!("Found {total_cells} cells in 'Sheet1', including {non_empty_cells} non empty cells");
    // alternatively, we can manually filter rows
    assert_eq!(non_empty_cells, range.rows()
        .flat_map(|r| r.iter().filter(|&c| c != &Data::Empty)).count());
}

// Check if the workbook has a vba project
if let Ok(Some(vba)) = workbook.vba_project() {
    let module1 = vba.get_module("Module 1").unwrap();
    println!("Module 1 code:");
    println!("{module1}");
    for r in vba.get_references() {
        if r.is_missing() {
            println!("Reference {} is broken or not accessible", r.name);
        }
    }
}

// You can also get defined names definition (string representation only)
for name in workbook.defined_names() {
    println!("name: {}, formula: {}", name.0, name.1);
}

// Now get all formula!
let sheets = workbook.sheet_names().to_owned();
for s in sheets {
    println!("found {} formula in '{}'",
             workbook
                .worksheet_formula(&s)
                .expect("error while getting formula")
                .rows().flat_map(|r| r.iter().filter(|f| !f.is_empty()))
                .count(),
             s);
}

§Crate Features

The following is a list of the optional features supported by the calamine crate. They are all off by default.

  • chrono: Adds support for Chrono date/time types to the API.
  • dates: A deprecated backwards compatible synonym for the chrono feature.
  • picture: Adds support for reading raw data for pictures in spreadsheets.

A calamine feature can be enabled in your Cargo.toml file as follows:

cargo add calamine -F chrono

Modules§

changelog
Changelog for calamine.
vba
Parse vbaProject.bin file

Structs§

Alignment
Cell alignment properties
Border
Border side
Borders
All borders for a cell
Cell
A struct to hold a cell position and value.
CellData
A struct that combines cell value and style information
Cells
A struct to iterate over all Cells in a Range.
Color
Represents a color in ARGB format
ColumnWidth
Column width information
Dimensions
Dimensions info
ExcelDateTime
Structure for Excel date and time representation.
Fill
Fill properties
Font
Font properties
Metadata
Common file metadata
NumberFormat
Number format
Ods
An OpenDocument Spreadsheet document parser
Protection
Cell protection properties
Range
A struct which represents an area of cells and the data within it.
RangeDeserializer
A configured Range deserializer.
RangeDeserializerBuilder
Builds a Range deserializer with some configuration options.
RichText
Rich text content with multiple formatted runs
RowHeight
Row height information
Rows
A struct to iterate over all Rowss in a Range.
Sheet
Metadata of sheet
Style
Complete cell style
StyleRange
RLE-compressed style storage for a worksheet range.
Table
The Table struct represents an Excel worksheet table.
TextRun
A run of text with its own formatting within a rich text cell
UsedCells
A struct to iterate over all the used Cells in a Range.
WorksheetLayout
Worksheet layout information
Xls
A struct representing an old xls format file (CFB)
XlsOptions
Options to perform specialized parsing.
Xlsb
A Xlsb reader
Xlsx
A struct representing xml zipped excel file Xlsx, Xlsm, Xlam

Enums§

BorderStyle
Border style enumeration
CellErrorType
An enum to represent all different errors that can appear as a value in a worksheet cell
Data
An enum to represent all different data types that can appear as a value in a worksheet cell
DataRef
An enum to represent all different data types that can appear as a value in a worksheet cell
DeError
A cell deserialization specific error enum
Error
A struct to handle any error and a message
ExcelDateTimeType
Excel datetime type. Possible: date, time, datetime, duration. At this time we can only determine datetime (date and time are datetime too) and duration.
FillPattern
Fill pattern type
FontStyle
Font style
FontWeight
Font weight
HeaderRow
Row to use as header By default, the first non-empty row is used as header
HorizontalAlignment
Horizontal alignment
OdsError
An enum for ods specific errors
SheetType
Type of sheet.
SheetVisible
Type of visible sheet.
Sheets
A wrapper over all sheets when the file type is not known at static time
TextRotation
Text rotation in degrees
UnderlineStyle
Underline style
VerticalAlignment
Vertical alignment
XlsError
An enum to handle Xls specific errors
XlsbError
A Xlsb specific error
XlsxError
An enum for Xlsx specific errors.

Traits§

CellType
A trait to constrain cells
DataType
A trait to represent all different data types that can appear as a value in a worksheet cell
Reader
A trait to share spreadsheets reader functions across different FileTypes
ReaderRef
A trait to share spreadsheets reader functions across different FileTypes
ToCellDeserializer
Constructs a deserializer for a CellType.

Functions§

deserialize_as_date_or_nonechrono
A helper function to deserialize cell values as chrono::NaiveDate.
deserialize_as_date_or_stringchrono
A helper function to deserialize cell values as chrono::NaiveDate.
deserialize_as_datetime_or_nonechrono
A helper function to deserialize cell values as chrono::NaiveDateTime.
deserialize_as_datetime_or_stringchrono
A helper function to deserialize cell values as chrono::NaiveDateTime.
deserialize_as_duration_or_nonechrono
A helper function to deserialize cell values as chrono::Duration.
deserialize_as_duration_or_stringchrono
A helper function to deserialize cell values as chrono::Duration.
deserialize_as_f64_or_none
A helper function to deserialize cell values as f64.
deserialize_as_f64_or_string
A helper function to deserialize cell values as f64.
deserialize_as_i64_or_none
A helper function to deserialize cell values as i64.
deserialize_as_i64_or_string
A helper function to deserialize cell values as i64.
deserialize_as_time_or_nonechrono
A helper function to deserialize cell values as chrono::NaiveTime.
deserialize_as_time_or_stringchrono
A helper function to deserialize cell values as chrono::NaiveTime.
open_workbook
Convenient function to open a file with a BufReader<File>.
open_workbook_auto
Opens a workbook and define the file type at runtime.
open_workbook_auto_from_rs
Opens a workbook from the given bytes.
open_workbook_from_rs
Convenient function to open a file with a BufReader<File>.