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 get_references(&self) -> &[Reference]
pub fn get_references(&self) -> &[Reference]
Gets the list of References
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 Ok(Some(vba)) = xl.vba_project() {
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)
.unwrap_or_else(|_| panic!("cannot read {m:?} module")));
}
}Trait Implementations§
Source§impl Clone for VbaProject
impl Clone for VbaProject
Source§fn clone(&self) -> VbaProject
fn clone(&self) -> VbaProject
Returns a duplicate 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 moreSource§impl Debug for VbaProject
impl Debug for VbaProject
Source§impl PartialEq for VbaProject
impl PartialEq for VbaProject
impl Eq for VbaProject
impl StructuralPartialEq for VbaProject
Auto Trait Implementations§
impl Freeze for VbaProject
impl RefUnwindSafe for VbaProject
impl Send for VbaProject
impl Sync for VbaProject
impl Unpin for VbaProject
impl UnsafeUnpin 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.