|
发表于 2011-9-14 10:40:42
|
显示全部楼层
广东省深圳市
本帖最后由 qq578023708 于 2011-9-14 10:46 编辑
网上 找了半天 ,只有一个用 javaAPI操作的例子,只适用于java
我想到的方法是 读取源文件进行分析,或者你下载一个 excel.applcction 动态库文件 用 excel.applaction对象操作
还有一个是在看雪论坛看到的。
* 00000000h到00000010h 这32个字节基本不变,表示是复合文档,前8个字节
D0 CF 11 E0 A1 B1 1A E1表示复合文档标识,后面16个字节全部为0,后面2个字节 3E 00
代表文件格式修订号,后面2个字节代表文件格式版本号,后面2个字节 FE FF 代表字节
顺序号(高存高低存低)后面连个字节 09 00 代表标准扇区的大小(公式= 2的9次幂
(09 00 十进制=9) = 512 bytes
* 00000020h行的 01 00 00 00 表示:BigBlock pointer区占的block个数。表1 中BigBlock pointer区Block个数为:01(十进制)。
* 00000030h行的 19 00 00 00 表示:指向RootEntry所在Block序号。表1中RootEntry的所在的起始block序号为:25(十进制)。
* 00000040h行的 FE FF FF FF 表示:指向XLS header扩展区所在Block序号。FE FF FF FF 表示没有XLS header 扩展区
* 00000040h行的 00 00 00 00 表示:XLS header扩展区所占的block的个数。如果没有XLS header扩展区这里就是00 00 00 00。
* 00000040h行的 18 00 00 00 表示:指向BigBlock pointer所在Block序号。表1中BigBlock pointer的所在的起始block序号为:24(十进制)。
* 00000050h行开始到00 00 01 f0h:4字节组。因为没有XLS header 扩展区,所以连续填充FF FF FF FF
WorkBook
存放execl表数据信息所有sheet数据都在这里面 ,里面的东西重要(那要看对那些对象,其实是对我不重要,呵呵)
09 08 10 00 00 06 05 00 86 20 CD 07 C9 C0 00
第1个字, 0×0010, 按照BIFF记录结构,当然是长度了
第2个字,0×0600, BIFF版本,BIFF7总是0×0500, BIFF8/BIFF8X总是0×0600,
第3个字, 0×0005, 数据类型, 0×0010 表示Sheet, 0×0005 表示Workbook Global第4个字,Build Id 不能是0, 但可以被忽略第5个字,Build Year 不能是0
。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
地址:http://bbs.pediy.com/showthread.php?p=934732
|
|