Struct calamine::vba::VbaProject

source ·
pub struct VbaProject { /* private fields */ }
Expand description

A struct for managing VBA reading

Implementations

Create a new VbaProject out of the vbaProject.bin ZipFile or xls file

Starts reading project metadata (header, directories, sectors and minisectors).

Creates a new VbaProject out of a Compound File Binary and the corresponding reader

Gets the list of References

Gets the list of Module names

Reads module content and tries to convert to utf8

While it works most of the time, the modules are MBSC encoding and the conversion may fail. If this is the case you should revert to read_module_raw as there is no built in decoding provided in this crate

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

let mut xl: Xlsx<_> = open_workbook(path).expect("Cannot find excel file");
if let Some(Ok(mut vba)) = xl.vba_project() {
    let vba = vba.to_mut();
    let modules = vba.get_module_names().into_iter()
                     .map(|s| s.to_string()).collect::<Vec<_>>();
    for m in modules {
        println!("Module {}:", m);
        println!("{}", vba.get_module(&m)
                          .expect(&format!("cannot read {:?} module", m)));
    }
}

Reads module content (MBSC encoded) and output it as-is (binary output)

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.