I will for sure.

Regards,
Andrey!


On 28 April 2012 11:03, Yegor Kozlov-4 [via Apache POI] <
[email protected]> wrote:

> In case you figure out how to extract VBA , you are very much welcome
> to contribute this code back to POI.
>
> Yegor
>
> On Sat, Apr 28, 2012 at 11:56 AM, Andrey Yesyev <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=5672249&i=0>>
> wrote:
>
> > Yes, you're right. It compressed with LZW algorthm (
> > http://en.wikipedia.org/wiki/LZW ). But according the spec, not all the
> > module, but only source code part.
> > Well, gonna dig deeper.
> > Thanks for reply!
> >
> > On 28 April 2012 10:51, Yegor Kozlov-4 [via Apache POI] <
> > [hidden email] <http://user/SendEmail.jtp?type=node&node=5672249&i=1>>
> wrote:
> >
> >> All I can suggest is to study the spec and write a decoder of VBA. I
> >> recall that macro code is compressed but it is not PKZIP but some
> >> other compression algorithm.
> >>
> >> If it is so, try to decompress your files first.
> >>
> >> I can't tell you exactly what to do - extracting VBA code is a big
> >> task and potentially can take days or weeks of work.
> >>
> >> Cheers,
> >> Yegor
> >>
> >> On Sat, Apr 28, 2012 at 11:32 AM, Andrey Yesyev <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=5672237&i=0>>
> >> wrote:
> >>
> >> > Hey guys!
> >> >
> >> > I'm working on the same issue, getting macros code from XLS file.
> >> > I got VBA modules raw data htis way
> >> >
> >> >                        HSSFWorkbook wb = new HSSFWorkbook(is);
> >> >
> >> >                        ExcelExtractor extractor = new
> >> ExcelExtractor(wb);
> >> >
> >> >                        List<HSSFObjectData> l =
> >> wb.getAllEmbeddedObjects();
> >> >                        DirectoryEntry root = extractor.getRoot();
> >> >                        for(Entry entry:root){
> >> >                                if(entry.isDirectoryEntry()){
> >> >                                        DirectoryEntry dirEntry =
> >> (DirectoryEntry)entry;
> >> >                                        if(dirEntry.hasEntry("VBA")){
> >> >                                                DirectoryNode node =
> >> (DirectoryNode) dirEntry.getEntry("VBA");
> >> >                                                for(Entry e:node){
> >> >                                                        DocumentNode
> >> docNode = (DocumentNode)e;
> >> >
> >>  if(!docNode.getName().startsWith("dir") &&
> >> >
> >>  !docNode.getName().startsWith("_VBA_PROJECT") &&
> >> >
> >>  !docNode.getName().startsWith("__SRP")){
> >> >
> >>  System.out.println(docNode.getName());
> >> >
> >>  DocumentInputStream dis = new DocumentInputStream(docNode);
> >> >                                                                byte[]
> >> data = IOUtils.toByteArray(dis);
> >> >
> >>  FileOutputStream fos = new
> >> > FileOutputStream("C:/"+docNode.getName()+"_data.txt");
> >> >
> >>  fos.write(data);
> >> >
> >>  fos.close();
> >> >                                                        }
> >> >                                                }
> >> >                                        }
> >> >                                }
> >> >                        }
> >> >
> >> > So I had 4 files. Sheet1_data.txt upto Sheet3_data.txt and
> >> > ThisWorkbook_data.txt.
> >> > My macros is in the ThisWorkbook_data.txt. But the problem is that I
> >> don't
> >> > recognize the format of these files as format of VBA module,
> described
> >> in
> >> > [MS-OVBA].pdf.
> >> >
> >> > Any ideas?
> >> >
> >> > --
> >> > View this message in context:
> >>
> http://apache-poi.1045710.n5.nabble.com/DO-NOT-REPLY-Bug-52949-New-How-to-extract-VBA-Macros-code-from-Excel-file-by-using-POI-tp5579175p5672215.html
> >> > Sent from the POI - Dev mailing list archive at Nabble.com.
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=5672237&i=1>
> >> > For additional commands, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=5672237&i=2>
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=5672237&i=3>
> >> For additional commands, e-mail: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=5672237&i=4>
> >>
> >>
> >>
> >> ------------------------------
> >>  If you reply to this email, your message will be added to the
> discussion
> >> below:
> >>
> >>
> http://apache-poi.1045710.n5.nabble.com/DO-NOT-REPLY-Bug-52949-New-How-to-extract-VBA-Macros-code-from-Excel-file-by-using-POI-tp5579175p5672237.html
> >>  To unsubscribe from DO NOT REPLY [Bug 52949] New: How to extract VBA
> >> Macros code from Excel file by using POI?, click here<
>
> >> .
> >> NAML<
> http://apache-poi.1045710.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
> >>
> >
> >
> > --
> > View this message in context:
> http://apache-poi.1045710.n5.nabble.com/DO-NOT-REPLY-Bug-52949-New-How-to-extract-VBA-Macros-code-from-Excel-file-by-using-POI-tp5579175p5672244.html
>
> > Sent from the POI - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=5672249&i=2>
> For additional commands, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=5672249&i=3>
>
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-poi.1045710.n5.nabble.com/DO-NOT-REPLY-Bug-52949-New-How-to-extract-VBA-Macros-code-from-Excel-file-by-using-POI-tp5579175p5672249.html
>  To unsubscribe from DO NOT REPLY [Bug 52949] New: How to extract VBA
> Macros code from Excel file by using POI?, click 
> here<http://apache-poi.1045710.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5579175&code=YW5kcmV5Lnllc3lldkBnbWFpbC5jb218NTU3OTE3NXwyNDA3NTQzMw==>
> .
> NAML<http://apache-poi.1045710.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>


--
View this message in context: 
http://apache-poi.1045710.n5.nabble.com/DO-NOT-REPLY-Bug-52949-New-How-to-extract-VBA-Macros-code-from-Excel-file-by-using-POI-tp5579175p5672252.html
Sent from the POI - Dev mailing list archive at Nabble.com.

Reply via email to