Hi Tom,
Thinking about this more, the best question is "where to start".
What level of complexity or correctness or speed are you aiming for?
Do you want a real proper Excel format parser, that leaves all the
information available to you in some kind of "tree", like an XML node
tree?
Or do you just want to hack small bits of information out for a single
use, and don't really want to make this into some library you use all
over the place for unforseen uses.
And how much data are you trying to get out? 10 Excel files? 10,000
Excel files?
From there... I can advise you to which approach you could take. For
example using ElfDataParser if you needed something to do it
"properly" and parse a huge number of files quickly.
Or just using ElfData.ByteValue / ElfData.ShortValue if you want
something simple.
On 16 Sep 2009, at 18:28, tsrdatatech wrote:
> Theo,
>
> Considering the capabilities of your plugin, do you think it would
> be a good match to parse meta data from excel files?
>
> This is something I am looking to do outside of using the office
> classes. I would like to read it in binary stream and try to glean
> the info that way. Stuff like the author of the file, creation date,
> last used by, last saved date, etc.
>
> I've been reading up on the file specs for this and you can read the
> info, I believe the encoding on these files are UTF16.
>
> Is it possible to utilize your plugin to accomplish some of these
> tasks?
>
> I know the way the file spec reads it will show binary unicode lines
> of data like this:
>
> SID 0: Root Directory Entry _ab = ("R") (this should be "Root
> Entry") _cb = 0004 (4 bytes, includes double-null terminator) _mse =
> 05 (STGTY_ROOT) _bflags = 00 (DE_RED) _sidLeftSib = FFFFFFFF (none)
> _sidRightSib = FFFFFFFF (none) _sidChild = 00000001 (SID 1: "Storage
> 1") _clsid = 0067 6156 54C1 CE11 8553 00AA 00A1 F95B _dwUserFlags =
> 00000000 (n/a for STGTY_ROOT) _time[0] = CreateTime = 0000 0000 0000
> 0000 (none set) _time[1] = ModifyTime = 801E 9213 4BB4 BA01 (??)
>
> _sectStart = 00000003 (starting sector of MiniStream) _ulSize =
> 00000240 (length of MiniStream in bytes) _dptPropType = 0000 (n/a)
> 000400: 0052 0000 0000 0000 0000 0000 0000 0000 .R..............
> 000410: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> 000420: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> 000430: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> 000440: 0400 0500 FFFF FFFF FFFF FFFF 0100 0000 ................
> 000450: 0067 6156 54C1 CE11 8553 00AA 00A1 F95B .gaVT....S.....
> [ 000460: 0000 0000 0000 0000 0000 0000 801E 9213 ................
> 000470: 4BB4 BA01 0300 0000 4002 0000 0000 0000 K.......@.......
>
> Do you think your plugin would make a good candidate for processing
> what I need?
>
> Thanks,
>
> Tom
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
--
http://elfdata.com/plugin/
"String processing, done right"