Struct calamine::vba::VbaProject
[−]
[src]
pub struct VbaProject { /* fields omitted */ }
A struct for managing VBA reading
Methods
impl VbaProject
[src]
fn new<R: Read>(r: &mut R, len: usize) -> Result<VbaProject>
Create a new VbaProject
out of the vbaProject.bin ZipFile
or xls file
Starts reading project metadata (header, directories, sectors and minisectors).
fn from_cfb<R: Read>(r: &mut R, cfb: Cfb) -> Result<VbaProject>
Creates a new VbaProject
out of a Compound File Binary and the corresponding reader
fn get_references(&self) -> &[Reference]
Gets the list of Reference
s
fn get_module_names(&self) -> Vec<&str>
Gets the list of Module
names
fn get_module(&self, name: &str) -> Result<String>
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::Excel; let mut xl = Excel::open(path).expect("Cannot find excel file"); let mut vba = xl.vba_project().expect("Cannot find 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))); }
fn get_module_raw(&self, name: &str) -> Result<&[u8]>
Reads module content (MBSC encoded) and output it as-is (binary output)
Trait Implementations
impl Clone for VbaProject
[src]
fn clone(&self) -> VbaProject
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more