excel文檔損壞修復

微軟的OFFICE是最為流行的辦公軟體,主要有OFFICE2010和OFFICE2007兩個版本。Office 2000是第三代辦公處理軟體的代表產品,可以作為辦公和管理的平台,以提高使用者的工作效率和決策能力。Office 2000中文版有4種不同的版本:標準版、中小企業版、中文專業版和企業版。

在Office 2000中各個組件仍有著比較明確的分工:一般說來,Word主要用來進行文本的輸入、編輯、排版、列印等工作;Excel主要用來進行有繁重計算任務的預算、財務、數據匯總等工作;PowerPoint主要用來製作演示文稿和幻燈片及投影片等;Access是一個桌面資料庫系統及資料庫應用程式;Outlook是一個桌面信息管理的應用程式;FrontPage主要用來製作和發布網際網路的Web頁面。

Microsoft Office XP是微軟有史以來所發行的Office版本中最重要的版本,而且也被認為是迄今為止功能最強大、最易於使用的Office產品。新版Office放棄了以往以產品發布年命名的慣例!產品名稱中的XP,是英文Experience(體驗)的縮寫,代表著新版Office在包容覆蓋廣泛設備的Web服務之後,將給用戶帶來豐富的、充分擴展的全新體驗。

基本介紹

  • 中文名:表格修復
  • 外文名:excel repair
微軟OFFICE簡介,表格文檔損壞修復,主扇區配置表,扇區配置表,短扇區配置表,目錄,
Excel中大量的公式函式可以套用選擇,使用Microsoft Excel可以執行計算,分析信息並管理電子表格網頁中的數據信息列表與數據資料圖表製作,可以實現許多方便的功能,帶給使用者方便。
與其配套組合的有:WordPowerPointAccess、InfoPath及Outlook,Publisher
Excel2013、2010、2007和老一點的Excel2003較為多見,Excel2002版本用的不是很多。比Excel2000老的版本很少見了。最新的版本增添了許多功能。使Excel功能更為強大。
Excel2003支持VBA編程,VBA是Visual Basic For Application的簡寫形式。VBA的使用可以達成執行特定功能或是重複性高的操作。

微軟OFFICE簡介

微軟的OFFICE是最為流行的辦公軟體,主要有OFFICE2010和OFFICE2007兩個版本。Office 2000是第三代辦公處理軟體的代表產品,可以作為辦公和管理的平台,以提高使用者的工作效率和決策能力。Office 2000中文版有4種不同的版本:標準版、中小企業版、中文專業版和企業版。
在Office 2000中各個組件仍有著比較明確的分工:一般說來,Word主要用來進行文本的輸入、編輯、排版、列印等工作;Excel主要用來進行有繁重計算任務的預算、財務、數據匯總等工作;PowerPoint主要用來製作演示文稿和幻燈片及投影片等;Access是一個桌面資料庫系統及資料庫應用程式;Outlook是一個桌面信息管理的應用程式;FrontPage主要用來製作和發布網際網路的Web頁面。
Microsoft Office XP是微軟有史以來所發行的Office版本中最重要的版本,而且也被認為是迄今為止功能最強大、最易於使用的Office產品。新版Office放棄了以往以產品發布年命名的慣例!產品名稱中的XP,是英文Experience(體驗)的縮寫,代表著新版Office在包容覆蓋廣泛設備的Web服務之後,將給用戶帶來豐富的、充分擴展的全新體驗。
除核心的 Office XP 程式 — Microsoft Word、Excel、Outlook和 PowerPoint— 外,Office XP 專業版 中包含 Microsoft Access 2002,它是 Office XP 資料庫解決方案,可幫助用戶存儲、訪問和分析數據。
要使用 Microsoft Office XP,推薦的系統配置為 Microsoft Windows 2000 Professional,計算機的硬體配置為 Pentium III 處理器和 128 MB 的 RAM。
在中國金山公司WPSoffice,和微軟office的功能非常相似,從1989年到1994年,中國國內辦公軟體一直都是WPS一統江湖。美國微軟的Windows系統在中國悄然登入之後二者形成了競爭的兩大陣營。
excel實踐者致力於提高中國職場白領的excel2007常用套用水平,提供模擬情景化的入門excel函式教程視頻,分享

表格文檔損壞修復

首先,讀取此檔案頭,假定此Excel檔案的頭(512位元組)內容如下:
00000000H D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00
00000010H 00 00 00 00 00 00 00 00 3B 00 03 00 FE FF 09 00
00000020H 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
00000030H 0A 00 00 00 00 00 00 00 00 10 00 00 02 00 00 00
00000040H 01 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00
00000050H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000060H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000070H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000080H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000090H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000A0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000B0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000C0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000D0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000100H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000110H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000120H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000130H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000140H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000150H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000160H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000170H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000180H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000190H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001A0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001B0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001C0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001D0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000001F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1)前8個位元組是固定的標識,表示這是一個複合文檔檔案。
00000000H D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00
2)接著16個位元組是唯一標識,其後的4個位元組表示修訂號和版本號,可不用管它。00 00 00 00 00 00 00 00 3B 00 03 00
00000000H D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00
00000010H 00 00 00 00 00 00 00 00 3B 00 03 00 FE FF 09 00
3)接下來的2個位元組是位元組順序(Byte Order)標識符,總是FEH FFH。
00000010H 00 00 00 00 00 00 00 00 3B 00 03 00 FE FF 09 00
4)接著的2個位元組表示sector的大小,再2個位元組表示short-sector的大小。分別是2^9=512位元組和2^6=64位元組。
00000010H 00 00 00 00 00 00 00 00 3B 00 03 00 FE FF 09 00
00000020H 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
5)接著的10個位元組無有效數據,可忽略。
00000020H 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
6)接著的4個位元組表示用於存放扇區配置表(SAT)的sector總數,此例為1個。
00000020H 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
7)接著的4個位元組表示用於存放目錄流的第一個sector的SID,這裡為sector 10。
00000030H 0A 00 00 00 00 00 00 00 00 10 00 00 02 00 00 00
8)接著的4個位元組無有效數據,可忽略。
00000030H 0A 00 00 00 00 00 00 00 00 10 00 00 02 00 00 00
9)接著的4個位元組表示標準流的最小大小,這裡為00001000H = 4096位元組。
00000030H 0A 00 00 00 00 00 00 00 00 10 00 00 02 00 00 00
10)接著的4個位元組表示用於存放短扇區配置表(SSAT)的第一個sector的SID,其後4個位元組表示用於存放短扇區配置表(SSAT)的sector總數,這裡SSAT從sector 2開始,並只占用1個sector。
00000030H0A 00 00 00 00 00 00 00 00 10 00 00 02 00 00 00
00000040H01 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00
11)接著的4個位元組表示用於存放主扇區配置表(MSAT)的第一個sector的SID,其後的4個位元組表示用於存放主扇區配置表(MSAT)的sector總數,這裡SID為-2,說明沒有附加的sector用於存放MSAT。
00000040H 01 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00
12)最後的436個位元組包含MSAT的前109個SID。只有第一個SID有效,因為上面已經說了SAT只占用1個sector。從這裡可看出為sector 0。其他的SID標記為Free SID值為-1。
00000040H 01 00 00 00 FE FF FF FF 00 00 00 00 00 00 00 00
00000050H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000060H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

主扇區配置表

頭中已經包含整個MSAT,其SID鏈為[0,-2]。

扇區配置表

在此例中扇區配置表僅占用sector 0,它開始於檔案偏移量為00000200H = 512位元組處。假定內容如下:
00000200H FD FF FF FF FF FF FF FF FE FF FF FF 04 00 00 00
00000210H 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00
00000220H 09 00 00 00 FE FF FF FF 0B 00 00 00 FE FF FF FF
00000230H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000240H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000250H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000260H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000270H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000280H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000290H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002A0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002B0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002C0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002D0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000002F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000300H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000310H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000320H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000330H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000340H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000350H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000360H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000370H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000380H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000390H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003A0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003B0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003C0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003D0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000003F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
因此可構建SAT的SID數組為:
Array index 01234 5678 9 10 11 12 …
SID array |–3|–1|–2|4|5|6|7|8|9|–2|11|–2|–1| … |
可看出sector 0被標記為SAT SID(-3),sector 1和sector 12及其後的所有sector都未被使用。

短扇區配置表

在頭中我們知道SSAT從sector 2開始只占用一個sector。從SAT中可看出位置2的值為-2,表示結束,故SSAT的SID鏈為[2, –2]。
開始於檔案偏移量為00000600H = 1536位元組處。
假定內容如下:
00000600H 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
00000610H 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00
00000620H 09 00 00 00 0A 00 00 00 0B 00 00 00 0C 00 00 00
00000630H 0D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00
00000640H 11 00 00 00 12 00 00 00 13 00 00 00 14 00 00 00
00000650H 15 00 00 00 16 00 00 00 17 00 00 00 18 00 00 00
00000660H 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00
00000670H 1D 00 00 00 1E 00 00 00 1F 00 00 00 20 00 00 00
00000680H 21 00 00 00 22 00 00 00 23 00 00 00 24 00 00 00
00000690H 25 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00
000006A0H 29 00 00 00 2A 00 00 00 2B 00 00 00 2C 00 00 00
000006B0H 2D 00 00 00 FE FF FF FF 2F 00 00 00 FE FF FF FF
000006C0H FE FF FF FF 32 00 00 00 33 00 00 00 34 00 00 00
000006D0H 35 00 00 00 FE FF FF FF FF FF FF FF FF FF FF FF
000006E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000006F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000700H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000710H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000720H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000730H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000740H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000750H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000760H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000770H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000780H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000790H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007A0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007B0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007C0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007D0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007E0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000007F0H FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
因此可構建SSAT的SID數組為:
Array
Indexes
0
1
2
3
4
5
6
7
8
9
10
11

41
42
43
44
45
46
47
48
49
SIDarray
0
1
2
3
4
5
6
7
8
9
10
11

42
43
44
45
-2
47
-2
-2
50
從sector 54開始所有的short-sectors都未被使用。

目錄

頭中指明用於存放目錄流的第一個sector為sector 10。目錄總是存放於sector中,而不是short-sector中。故從SAT構建SID鏈為[10, 11, –2]。sector 10的偏移量為00001600H = 5632, sector 11的偏移量為00001800H = 6144。此例中sector的大小為512位元組,因此每個sector包含4個目錄入口(一個目錄入口128位元組),故此目錄共包含8個入口。
<1>根倉庫入口(Root Storage Entry)
第一個目錄入口總是根目錄入口,假定其內容如下:
00001600H 52 00 6F 00 6F 00 74 00 20 00 45 00 6E 00 74 00
00001610H 72 00 79 00 00 00 00 00 00 00 00 00 00 00 00 00
00001620H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001630H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001640H 16 00 05 00 FF FF FF FF FF FF FF FF 01 00 00 00
00001650H 10 08 02 00 00 00 0000 C0 00 00 00 00 00 00 46
00001660H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001670H 00 00 00 00 03 00 00 00 80 0D 00 00 00 00 00 00
1)前64個位元組是此入口名字的字元數組(為16位的字元,以第一個00結束),
可看出此入口的名字是“Root Entry”。
00001600H 52 00 6F 00 6F 00 74 00 20 00 45 00 6E 00 74 00
00001610H 72 00 79 00 00 00 00 00 00 00 00 00 00 00 00 00
00001620H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001630H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2)接著2個位元組表示用於存放上述字元數組的有效區域的大小,這裡是22位元組,只有10個有效字元。
00001640H 16 00 05 00 FF FF FF FF FF FF FF FF 01 00 00 00
3)接著1個位元組表示入口類型,根倉庫入口故為05H。
00001640H 16 00 05 00 FF FF FF FF FF FF FF FF 01 00 00 00
4)接著1個位元組表示入口節點顏色,這裡為紅色,打破了根倉庫入口為黑的規定。
00001640H 16 00 0500 FF FF FF FF FF FF FF FF 01 00 00 00
5)接著4個位元組表示其左節點的DID,再接著4個位元組表示右節點的DID。對根倉庫入口來說都是-1。
00001640H 16 00 05 00 FF FF FF FF FF FF FF FF 01 00 00 00
6)接著4個位元組表示根倉庫入口的成員構建的紅黑樹的根節點的DID,此例為1。
00001640H 16 00 05 00 FF FF FF FF FF FF FF FF 01 00 00 00
7)接著16個位元組表示唯一標識符,說明這是一個倉庫,其後4位元組表示用戶標識,再接著是兩個時間標記,各8位元組,表明此倉庫的創建時間和最後修改時間。這些數據都可忽略。
00001650H 10 08 02 00 00 00 00 00 C0 00 00 00 00 00 00 46
00001660H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001670H00 00 00 00 03 00 00 00 80 0D 00 00 00 00 00 00
8)接著4個位元組表示短流存放流的第一個sector的SID,其後4位元組表示短流存放流的大小。此例中第一個sector為sector 3,其大小為00000D80H = 3456位元組。
00001670H 00 00 00 00 03 00 00 00 80 0D 00 00 00 00 00 00
9)最後4個位元組無有效數據,可忽略。
00001670H 00 00 00 00 03 00 00 00 80 0D 00 00 00 00 00 00
<1>第二個目錄入口
第二個目錄入口(DID 1)假定其內容如下:
00001680H 57 00 6F 00 72 00 6B 00 62 00 6F 00 6F 00 6B 00
00001690H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000016A0H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000016B0H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000016C0H 12 00 02 00 02 00 00 00 04 00 00 00 FF FF FF FF
000016D0H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000016E0H 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000016F0H 00 00 00 00 00 00 00 00 51 0B 00 00 00 00 00 00
用顏色標記的為重要數據。入口的名字是“Workbook”,它表示一個流。其左節點的DID是2,右節點的DID是4。其第一個sector的SID是0,其大小是00000B51H = 2897位元組,小於4096位元組,故其存放於短流存放流中。
<3>剩下的目錄入口
剩下的目錄入口可按上面的方法讀取.
從根倉庫入口的第一個成員的DID(此為1)可以找到根倉庫的所有成員。入口1有2個子節點,DID 2和DID 4,DID 2又有一個子節點DID 3,DID 3和DID 4都沒有子節點了。因此根倉庫包含DID 1、2、3、4這4個成員。
<4>流的SID鏈
短流存放流是存儲在sector中的,小於4096位元組的用戶流(為短流)存儲在短流存放流中,並使用SSAT構建SID鏈。
下表給出所有流的情況:
DID流名配置表SID鏈
0Root Entry (短流存放流) SAT[3,4,5,6,7,8,9,–2]
1WorkbookSSAT [0,1,2,3,4,5,…,43,44,45,–2]
2 <01H>CompObjSSAT[46, 47,–2]
3<01H>Ole SSAT [48,–2]
4<05H>SummaryInformationSSAT[49,50,51,52,53,–2]
<5>流的讀取
短流存放流讀取其SID鏈中的所有sector,此例中將按順序讀取sector 3,4,5,6,7,8,9,故此流的大小為512×7=3584位元組。但是只有前3456位元組有效(根倉庫入口中指定的)。這3456位元組被分成大小為64位元組的short-sector,一共54個。
現在我們來讀取流“<01H>CompObj”,其SID鏈為[46, 47,–2],此流是一個短流。其數據存放在short-sector 46和short-sector 47中。short-sector 46在短流存放流中的偏移量為2944位元組,short-sector 47的偏移量為3008位元組。

相關詞條

熱門詞條

聯絡我們