[][src]Struct calamine::vba::VbaProject

pub struct VbaProject { /* fields omitted */ }

A struct for managing VBA reading

Methods

impl VbaProject[src]

pub fn new<R: Read>(r: &mut R, len: usize) -> Result<VbaProject, VbaError>[src]

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

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

pub fn from_cfb<R: Read>(
    r: &mut R,
    cfb: &mut Cfb
) -> Result<VbaProject, VbaError>
[src]

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

pub fn get_references(&self) -> &[Reference][src]

Gets the list of References

pub fn get_module_names(&self) -> Vec<&str>[src]

Gets the list of Module names

pub fn get_module(&self, name: &str) -> Result<String, VbaError>[src]

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)));
    }
}

pub fn get_module_raw(&self, name: &str) -> Result<&[u8], VbaError>[src]

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

Trait Implementations

impl Clone for VbaProject[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]