So, a good normal working ods file start with PK. See example below.
$ hexdump -C myfile.ods | head -1
00000000 50 4b 03 04 14 00 00 08 00 00 b7 71 c5 46 85 6c |PK.........q.F.l|
The broken one does not start with PK and for my spreadsheet, it is something like the following. It may be different than you but that does not matter.
$ hexdump -C myfile.ods | head -1
00000000 2c 75 73 65 72 2c 55 73 65 72 57 6f 72 6b 73 |,user,UserWorks|
because openoffice file is compressed file, and then you can fix using the application zip. To fix it, you can run the command such as the one below.
user@localhost:~$ zip --fixfix myfile.ods --out myfixfile.ods
Fix archive (-FF) - salvage what can
Found end record (EOCDR) - says expect single disk archive
Scanning for entries...
copying: Object 1/styles.xml (398 bytes)
copying: Object 1/content.xml (1892 bytes)
copying: Object 1/meta.xml (281 bytes)
copying: Object 2/content.xml (1999 bytes)
copying: Object 2/meta.xml (281 bytes)
copying: Object 2/styles.xml (483 bytes)
copying: Object 3/content.xml (2116 bytes)
copying: Object 3/meta.xml (281 bytes)
copying: Object 3/styles.xml (398 bytes)
copying: styles.xml (1999 bytes)
copying: Object 4/meta.xml (281 bytes)
copying: Object 4/content.xml (2405 bytes)
copying: Object 4/styles.xml (398 bytes)
copying: content.xml (17364 bytes)
copying: meta.xml (441 bytes)
copying: ObjectReplacements/Object 1 (2278 bytes)
copying: ObjectReplacements/Object 2 (3654 bytes)
copying: ObjectReplacements/Object 3 (1924 bytes)
copying: ObjectReplacements/Object 4 (2483 bytes)
copying: META-INF/manifest.xml (449 bytes)
Central Directory found...
no local entry: mimetype
no local entry: settings.xml
no local entry: manifest.rdf
no local entry: Configurations2/menubar/
no local entry: Configurations2/toolpanel/
no local entry: Configurations2/progressbar/
no local entry: Configurations2/accelerator/current.xml
no local entry: Configurations2/statusbar/
no local entry: Configurations2/images/Bitmaps/
no local entry: Configurations2/toolbar/
no local entry: Configurations2/floater/
no local entry: Configurations2/popupmenu/
no local entry: Thumbnails/thumbnail.png
EOCDR found ( 1 73809)...
So the above command will try to salvage whatever it can. You might have guess it, the fix version file is the one specified by --out parameter.
This method works superb for my corrupted file. The fix version of the file contain all the data as before and I was happy. :) I hope it works for you too. That's it for today learning. Good luck to you!
No comments:
Post a Comment