[發(fā)明專利]一種針對微軟EXCEL文件的數(shù)據(jù)重組修復方法有效
| 申請?zhí)枺?/td> | 202010896794.X | 申請日: | 2020-08-31 |
| 公開(公告)號: | CN112069130B | 公開(公告)日: | 2023-05-02 |
| 發(fā)明(設計)人: | 梁效寧;許超明;何麗萍 | 申請(專利權)人: | 四川效率源信息安全技術股份有限公司 |
| 主分類號: | G06F16/13 | 分類號: | G06F16/13;G06F12/02 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 641000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 針對 微軟 excel 文件 數(shù)據(jù) 重組 修復 方法 | ||
1.一種針對微軟EXCEL文件的數(shù)據(jù)重組修復方法,其特征在于包括以下步驟:
S100:加載所述微軟EXCEL文件并讀取首個扇區(qū)的字節(jié)內(nèi)容,判斷所述字節(jié)內(nèi)容是否符合微軟EXCEL文件首個扇區(qū)的扇區(qū)結構,如果是,執(zhí)行步驟S300,否則,執(zhí)行步驟S200,其中,所述微軟EXCEL文件為待修復文件;
S200:遍歷所述微軟EXCEL文件的所有扇區(qū),獲取目錄流扇區(qū)、配置表扇區(qū);
S300:解析所述配置表扇區(qū)及所述目錄流扇區(qū),檢測扇區(qū)結構是否完整,如果是,執(zhí)行步驟S400,否則,執(zhí)行步驟S600;
S400:根據(jù)完整的配置表扇區(qū)信息及完整的目錄流扇區(qū)信息,解析、校驗、構造所述微軟EXCEL文件的文件頭的扇區(qū)結構;
S500:根據(jù)所構造的頭結構扇區(qū)內(nèi)容和待修復文件扇區(qū)數(shù)據(jù),重組所述微軟EXCEL文件的所有扇區(qū)數(shù)據(jù),執(zhí)行步驟S800;
S600:解析數(shù)據(jù)流扇區(qū)數(shù)據(jù),獲取工作簿數(shù)據(jù)子流數(shù)據(jù);
S700:解析所述工作簿數(shù)據(jù)子流數(shù)據(jù),重組所述微軟EXCEL文件中工作表數(shù)據(jù),執(zhí)行步驟S900;
S800:所重組后新的EXCEL文件扇區(qū)數(shù)據(jù)寫入新的EXCEL文件,結束流程;
S900:按重組后的工作表數(shù)據(jù)個數(shù)寫入相應個數(shù)的TXT文件:新建TXT文件,將從工作表類型的工作簿子流中解析到的單元格數(shù)據(jù),按照二維數(shù)組重新排序后的數(shù)組的內(nèi)容,寫入TXT文件中。
2.根據(jù)權利要求1所述的一種針對微軟EXCEL文件的數(shù)據(jù)重組修復方法,其特征在于,所述微軟EXCEL文件首個扇區(qū)的扇區(qū)結構如下述表1所示,其中,前8字節(jié)內(nèi)容為0xD0?CF11E0?A1?B11A?E1;
表1:微軟EXCEL文件首個扇區(qū)的扇區(qū)結構
其中,SID表示扇區(qū)標識符Sector?Identifier,SSAT表示短扇區(qū)配置表short?sectorallocation?table,SAT表示扇區(qū)配置表sector?allocation?table,MSAT表示主扇區(qū)配置表main?sector?allocation?table。
3.根據(jù)權利要求1所述的一種針對微軟EXCEL文件的數(shù)據(jù)重組修復方法,其特征在于,所述步驟S200包括以下步驟:
S201:逐一讀取各個扇區(qū)的字節(jié)內(nèi)容,用以解析各個扇區(qū)并與表2所示的目錄流存儲結構進行對比,判定當前扇區(qū)是否屬于目錄流扇區(qū)或配置表扇區(qū),
表2目錄流結構
其中,DID表示目錄入口標識符directory_entry?Identifier;
S202:判斷當前扇區(qū)的字節(jié)內(nèi)容是否同時滿足目錄流扇區(qū)所具有的下述五個條件,如果是,則判定當前扇區(qū)為目錄流扇區(qū),記錄當前扇區(qū)在所述微軟EXCEL文件中的偏移地址,并且根據(jù)所述表2的目錄流扇區(qū)結構,記錄當前扇區(qū)的目錄流結構;否則,判斷下一扇區(qū)的字節(jié)內(nèi)容是否同時滿足目錄流扇區(qū)所具有的下述五個條件,直至完成各個扇區(qū)的字節(jié)內(nèi)容的判斷;
條件一:包含所述表2所示的4個目錄流結構,且每個目錄流結構固定字節(jié)長度為0x80字節(jié);
條件二:存儲名字的區(qū)域大小不超過0x40字節(jié);
條件三:入口類型不超過0x05字節(jié);
條件四:目錄結構中的左節(jié)點、右節(jié)點、根節(jié)點的DID值均滿足DID大于0或DID等于-1;
條件五:流的入口SID值不小于0或SID值等于-2;
S203:判斷當前扇區(qū)的字節(jié)內(nèi)容是否同時滿足配置表扇區(qū)所具有的下述兩個條件,如果是,則判定當前扇區(qū)為配置表扇區(qū),繼續(xù)判斷當前配置表扇區(qū)屬于SSAT/SAT/MSAT中的哪一種,否則,判斷下一扇區(qū)的字節(jié)內(nèi)容是否同時滿足配置表扇區(qū)所具有的下述兩個條件,直至完成各個扇區(qū)的字節(jié)內(nèi)容的判斷;
條件一:當前扇區(qū)的0x80字節(jié)內(nèi)容以4字節(jié)為一組,逐一對各組的SID值進行判斷,各個SID值均需要滿足:
SID大于0時,SID小于(所述微軟EXCEL文件總大小-0x200)/0x200;
SID小于0時,SID值只能為-1、-2、-3或者-4之一;
條件二:當SID值等于-1時,其后所有SID值均為-1;
判斷當前配置表扇區(qū)屬于SSAT/SAT/MSAT四種分類中的哪一種:
情況一:如果配置表扇區(qū)位于目錄流扇區(qū)之前,則當前配置表扇區(qū)為SAT;
情況二:如果配置表扇區(qū)位于Root?Entry所在的目錄流扇區(qū)之后,且配置表扇區(qū)內(nèi)第一個正數(shù)的SID等于當前SID值的扇區(qū)內(nèi)偏移地址/4,則表示當前配置表扇區(qū)為SSAT;
情況三:如果配置表扇區(qū)內(nèi)只有正數(shù)值和-1一種負值,則當前配置表扇區(qū)為MSAT;
情況四:如果配置表扇區(qū)中存在-3,-4兩種負值的SID值,則當前配置表扇區(qū)為SAT;
如果目錄流扇區(qū)中存在Root?Entry,則根據(jù)Root?Entry目錄流結構中的入口Sid值和入口字節(jié)數(shù),判定SSAT的最大SID值;
S204:根據(jù)所分類的配置表扇區(qū),將SAT配置表扇區(qū)的SID值生成SAT-SID鏈表:所述SAT-SID鏈表由SAT數(shù)組索引和SID一一對應而構成,所述數(shù)組索引為自然數(shù),SID的內(nèi)容為當前SID的下一SID所對應的SAT數(shù)組索引;
S205:根據(jù)所分類的配置表扇區(qū),將SSAT配置表扇區(qū)的SID值形成SSAT-SID鏈表:所述SSAT-SID鏈表由SSAT數(shù)組索引和SID一一對應而構成,所述SSAT數(shù)組索引為自然數(shù),SID的內(nèi)容為當前SID的下一SID所對應的SSAT數(shù)組索引。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川效率源信息安全技術股份有限公司,未經(jīng)四川效率源信息安全技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010896794.X/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種自動上件的座圈壓裝生產(chǎn)線
- 下一篇:一種中草藥材超微粉碎機
- 對微軟媒體格式的點播流媒體數(shù)據(jù)進行加密和解密的方法
- 對微軟媒體格式的點播流媒體數(shù)據(jù)加解密的方法和系統(tǒng)
- WCF RIA Services下集成NHIBERNATE的方法
- 一種醫(yī)用報告自助服務系統(tǒng)
- 控制軟件、裝配工位、具有多個裝配工位的系統(tǒng)、計算機可讀的介質
- 自動化微軟功耗測試方法、裝置、計算機設備和存儲介質
- 一種針對微軟EXCEL文件的數(shù)據(jù)重組修復方法
- 一種物聯(lián)網(wǎng)設備接入微軟云的方法及系統(tǒng)
- 基于微軟布署系統(tǒng)的Linux網(wǎng)絡啟動方法及裝置
- TWS藍牙耳機控制PC上微軟Teams的方法
- 一種基于異步處理的大數(shù)據(jù)量Excel文件導出方法
- 一種數(shù)據(jù)EXCEL導入和導出的工具
- 一種Excel合并方法和系統(tǒng)
- 基于數(shù)據(jù)配置生成Excel表格和圖例的系統(tǒng)及方法
- 一種業(yè)務系統(tǒng)導入EXCEL數(shù)據(jù)的方法
- 一種Excel數(shù)據(jù)文件的處理方法及裝置
- 一種excel導入導出的實現(xiàn)方法及裝置
- Excel數(shù)據(jù)的導出方法及裝置、電子設備
- 一種大數(shù)據(jù)excel文件導入的系統(tǒng)及方法
- 腳本生成方法、裝置、計算機設備及存儲介質





