pub struct VbaProject { /* private fields */ }
Expand description
A struct for managing VBA reading
Implementations§
Source§impl VbaProject
impl VbaProject
Sourcepub fn new<R: Read>(r: &mut R, len: usize) -> Result<VbaProject, VbaError>
pub fn new<R: Read>(r: &mut R, len: usize) -> Result<VbaProject, VbaError>
Create a new VbaProject
out of the vbaProject.bin ZipFile
or xls file
Starts reading project metadata (header, directories, sectors and minisectors).
Sourcepub fn from_cfb<R: Read>(
r: &mut R,
cfb: &mut Cfb,
) -> Result<VbaProject, VbaError>
pub fn from_cfb<R: Read>( r: &mut R, cfb: &mut Cfb, ) -> Result<VbaProject, VbaError>
Creates a new VbaProject
out of a Compound File Binary and the corresponding reader
Sourcepub fn get_references(&self) -> &[Reference]
pub fn get_references(&self) -> &[Reference]
Gets the list of Reference
s
Sourcepub fn get_module_names(&self) -> Vec<&str>
pub fn get_module_names(&self) -> Vec<&str>
Gets the list of Module
names
Sourcepub fn get_module(&self, name: &str) -> Result<String, VbaError>
pub fn get_module(&self, name: &str) -> Result<String, VbaError>
Reads module content and tries to convert to utf8
While it works most of the time, the modules are MBCS 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)));
}
}
Trait Implementations§
Source§impl Clone for VbaProject
impl Clone for VbaProject
Source§fn clone(&self) -> VbaProject
fn clone(&self) -> VbaProject
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for VbaProject
impl RefUnwindSafe for VbaProject
impl Send for VbaProject
impl Sync for VbaProject
impl Unpin for VbaProject
impl UnwindSafe for VbaProject
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more