專利名稱:電子表格文件節省存儲空間并提高數據處理速度的方法
技術領域:
本發明涉及一種電子表格文件節省存儲空間并提高數據處理速度的方法,特別是指一種用于在嵌入式產品中通過適當增加空閑存儲空間提高電子表格數據處理的速度;為節省存儲空間,分類存儲電子表格格式信息;及提高電子表格公式處理速度的方法,屬于計算機數據處理領域。
隨著電子技術和計算機技術的不斷發展,大量的嵌入式產品進入了人們生活的各個方面。一方面,相對于PC機的性能而言,規格參數,嵌入式產品無論在存儲能力方面,還是在硬件的處理速度方面都還有極大的差距。以目前的PDA為例其閃存的容量一般為2M-4M字節,僅能用于固化200多萬漢字的資料,僅可記錄80多萬漢字或160多萬英文字母。在這么有限的空間里既要存儲操作系統,又要容納多個應用軟件和大量客戶信息,實在是力不從心;另一方面,表格的文件格式,是嵌入式產品與PC交換數據的媒介,根據市場調查得來的結果,嵌入式產品上大部分表格數據來自PC上的電子表格,而嵌入式產品處理后的表格數據也必不可少傳回PC,這樣嵌入式產品上表格文件格式與PC的電子表格文件保持兼容將給用戶帶來極大方便,這就需要在開發電子表格程序時,將節省存儲空間作為首要考慮的內容之一。
在一般的嵌入式產品硬件平臺上運行的電子表格程序所提供的功能中,由于沒有反選區,沒有強大的查找功能,沒有編輯表格線,沒有表頭固定顯示,沒有計算等功能,所以遠遠不能滿足用戶的需要;在配置較高的硬件平臺上運行的電子表格程序,雖然功能比較齊全,但軟件所消耗的硬件資源較多,相對硬件的價位較高,一般用戶無法承受。
面對嵌入式產品硬件的局限,不可能在嵌入式產品上處理大量的數據信息,但為了提高工作效率,可以在PC機上利用其電子表格軟件處理了大量的數據信息后,再傳送到嵌入式產品上,以便于使用者外出利用該數據;這就要求PC機的電子表格與嵌入式產品的電子表格能夠實現同步數據傳送。另外,為了方便電子表格的升級、移植,還需要將電子表格模塊化處理。
目前,嵌入式產品上的表格處理方法都在盡量利用PC機上的表格處理方法。盡管在界面上各類表格處理程序都做出了各自的特色,但在核心數據處理方面都采用PC機的處理方式,它們有以下特點為了使所處理的表格與PC上處理的表格保持兼容,一些表格文件干脆直接采用PC的表格文件,這種文件格式復雜并且內含的大量表格格式數據,占用了大量的存儲空間,對于嵌入式產品內極為有限的存儲空間來說,是無法承受的的。由于嵌入式產品的存儲空間有限,因此每次只能緩沖一個子表,使子表之間在切換時不得不先存盤,而使用者在使用嵌入式產品處理表格時往往只作少量修改工作,為存下這些修改,就需要作大量數據移動工作,非常煩瑣并且需要耗費大量的存儲空間,降低了運行的速度。
另一些表格文件則采用可處理的逗號分隔式的文件格式,這種文件格式僅保存了表格的數據,并且只能存儲PC表格文件的一個子表,由于嵌入式產品只有不斷與PC交換數據才能充分發揮嵌入式產品的長處,當這種表格文件經嵌入式產品處理后返回PC上,并用PC的表格處理軟件文件打開時,就會發現雖然數據沒有發生錯誤,但其表格的格式卻發生了很大的改變。
另外,在表格數據處理時,一些處理方法通常需要采用數組來進行緩沖,它為每一個單元格分配同樣的存儲長度,而不管其內數據的實際長度,而另外一些方法則根據單元格內數據的實際長度為單元格分配存儲空間。雖然,這兩種方法容易實現,但前者由于受到嵌入式產品RAM空間的限制,不能用于處理通用性的表格;而后者則由于嵌入式產品CPU主頻的限制,其效率往往很低。
綜上所述,現有技術存在著如下的缺陷與不足1)節省存儲空間與節省能源之間存在著巨大的矛盾;即在通過對數據進行處理而節省了了存儲空間的同時,使得該處理方法所消耗的時間相對增長;反之,采用節省時間的方法,又不可避免地增加了數據的存儲空間。
2)數據同步性差;現有技術在將PC機上的電子表格轉化為嵌入式產品上電子表格的過程中,只保存表格的內容,而對表格的子表、表格的格式不予保留;表格的表頭也不能固定顯示;表格強大的查找功能由此失效,表格的計算功能受到衰減,進而對同步數據傳送產生很大的影響。
3)功能不平衡、操作不便;即功能完善的電子表格處理方法在一般的嵌入式產品硬件平臺上根本運行不了或運行速度極慢,而高檔的嵌入式產品的價格昂貴,一般用戶無法承受;而在一般的嵌入式產品硬件平臺上運行良好的電子表格所提供的功能又遠遠無法滿足用戶的需求。
4)電子表格處理軟件的代碼冗長、移植性差;許多嵌入式產品的電子表格操作復雜,功能繁多,它依靠大量的編程來實現,表現在技術上就是程序的代碼冗長,程序煩瑣,不具有良好的移植性。
有鑒于現有的嵌入式產品電子表格的數據處理技術的缺陷和不足,本發明的主要目的在于提供一種電子表格文件節省存儲空間并提高數據處理速度的方法,它解決在節省存儲空間與節省能源之間存在著的矛盾;即在節省數據處理時間的同時,可避免增加數據的存儲空間。
本發明的另一目的在于提供一種電子表格文件節省存儲空間并提高數據處理速度的方法,它將電子表格的格式信息分類存儲,節省電子表格的存儲空間。
本發明的又一目的在于提供一種電子表格文件節省存儲空間并提高數據處理速度的方法,電子表格的公式以字符串的形式存儲,并且采用一次解釋,多次執行的方法節省公式運算的時間。
本發明的目的是通過如下的技術方案實現的一種電子表格文件節省存儲空間并提高數據處理速度的方法,電子表格數據的存儲空間分配有用于緩沖被修改數據的空閑空間,在修改電子表格數據時,該空閑空間用于緩沖電子表格因修改而增大的數據量。
所述的電子表格數據的修改包括如下的步驟1、由單元格所在記錄得出其所在塊;2、從該塊的開始地址逐步檢索到單元格所在記錄開始地址,再檢索到單元格實際存放的地址并提取數據;3、當在原數據基礎上修改數據時;4、如果修改后數據量比原數據量小,則直接寫入修改后的數據;5、否則,判斷該單元格的空閑空間能否存儲多出的數據量,如果能存儲,轉入步驟9;6、否則,判斷該單元格所在塊的空閑空間能否存下多出的數據量,如果能存儲,轉入步驟8;7、否則,依據電子表格文件存儲空間的分配方法,移動該塊后面的數據,為該塊提供更多的空間,并修改后面所有塊的地址參數;8、依據電子表格文件存儲空間的分配的方法,在該塊內移動單元格后面的數據,為該單元分配更多的空間;9、寫入該單元實際所占用的存儲空間,并寫入修改后的數據。
所述的電子表格文件存儲空間的分配方法為對電子表格文件分配存儲空間時,先為單元格分配存儲空間;然后根據塊內所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應的存儲空間。
所述的為單元格分配存儲空間包括如下的步驟1、從電子表格文件的記錄中提取單個單元格數據,獲取該單元格的數據量;2、將該單元格數據實際的長度值除以單元格空閑參數后取整再加1;3、將通過步驟2獲得的數值乘以單元格空閑參數,獲得單元格的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中單元格空閑參數為一設定的正整數值。
所述的塊存儲空間分配的方法包括如下的步驟1、統計塊中所有記錄的單元格的存儲空間長度;2、將塊內數據實際存儲空間長度值除以塊空閑參數后取整再加1;
3、將通過步驟2獲得的數值乘以塊空閑參數,獲得塊的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中塊空閑參數為一設定的正整數值。
為每個單元格分配存儲空間時,還額外分配一個用于標識該單元格所占存儲空間的字節。
所述的電子表格文件節省存儲空間并提高數據處理速度的方法還包括為加快電子表格數據存儲的速度并節省電子表格格式信息的存儲空間,在電子表格文件的子表表頭部分存儲該子表單元格的格式信息;所有的單元格分為特殊單元格和缺省單元格,在存儲單元格格式信息時,僅存儲特殊單元格的格式信息。
所述的特殊單元格為固定顯示行或固定顯示列的單元格或首行或首列的單元格。
缺省單元格為除特殊單元格以外的所有單元格。
特殊單元格格式信息至少包括該單元格實際格式信息及該單元格所在行和列的數據。
所述的電子表格文件節省存儲空間并提高數據處理速度的方法還包括電子表格單元格內的計算公式以字符串的形式存儲,該計算公式的解釋和執行至少包括1、利用與計算公式中各運算符號及運算對象相應的函數將該計算公式在加、減、乘、除、乘方及開方的基礎上形成的該計算公式的函數序列;2、將該計算公式的函數序列分解成運算單元序列;3、執行該運算單元序列,并返回計算結果。
在上述的步驟2之后,還將該運算單元序列存儲起來,當再次運算該公式時,可直接將所存儲的該公式的運算單元序列調出執行,而不再解釋。
所述的以字符串形式存儲的計算公式的啟始部分為一特定字符串。
所述的電子表格文件至少由文件頭、一個或一個以上的子表組成,其中文件頭至少包含有文件標識信息、子表數量信息、子表名以及子表在文件中的地址信息。
所述的子表至少包含有表頭及一個或一個以上的塊。
所述的塊至少包含塊在緩沖區中的地址、塊內數據實際長度信息和一個或一個以上的記錄,該記錄包含有一個或一個以上的單元格。
所述的電子表格文件還包含有用于分隔子表或塊或單元格的分隔字符。
本發明通過所提供的電子表格文件節省存儲空間并提高數據處理速度的方法,具有如下的優點和有益的效果1)通過電子表格數據存儲空間分配的方法,首先,為單元格分配存儲空間;然后,根據塊內所有單元格所分配的存儲空間,為該塊分配相應的存儲空間。并且,在上述的空間分配中,通過加入空閑存儲空間實現各級數據的緩沖,避免了在修改電子表格數據時數據的頻繁移動操作,加快了執行的速度,節省了應用程序所占用的存儲空間。
2)通過電子表格公式解釋和執行的方法對以字符串的形式存儲的計算公式,在完成公式解釋工作后,將該公式存儲起來,實現“解釋一次,執行多次”,加快了公式的計算速度。
3)利用單元格表格信息分類存儲的方法將所有的單元格分類,并且僅存儲特殊單元格的表格信息,節省了電子表格的存儲空間。
本發明解決了在節省存儲空間與節省能源之間存在著的矛盾,在節省數據處理時間的同時,可避免增加數據的存儲空間;在將PC機上的電子表格轉化為嵌入式產品上電子表格的過程中,在保存表格的內容的同時,對電子表格的子表、表格的格式也做了保留,使得表格的表頭能夠固定顯示,表格的查找功能不會失效,表格的計算功能得到了保證,進而實現了同步數據傳送;本發明提供的處理方法適用于任何嵌入式產品硬件平臺,其在提供運行良好的電子表格功能的同時,不會增加使用的成本;本發明提供的處理方法的編程規模小,程序的代碼精簡,并且由于采用了模塊化的結構,因此具有良好的移植性。
以下結合附圖及具體的實施例對本發明作進一步的詳細說明
圖1為本發明電子表格文件結構示意圖。
圖2為本發明電子表格子表的結構示意圖。
圖3為本發明電子表格子表中塊的結構示意圖。
圖4為本發明電子表格中記錄的結構示意圖。
圖5為本發明單元格存儲空間的結構示意圖。
圖6為本發明一實施例具有特殊單元格及缺省單元格的電子表格示意圖。
圖7為本發明一實施例計算公式解釋和執行實施例的流程示意圖。
圖8為本發明單元格存儲空間分配的原理流程示意圖。
圖9為本發明塊存儲空間分配的原理流程示意圖。
圖10為本發明一實施例電子表格文件操作的總體流程示意圖。
圖11為圖10中“新建”操作的流程示意圖。
圖12為圖10中“打開”操作的流程示意圖。
圖13為本發明一實施例子表數據塊存儲空間分配的流程示意圖。
圖14為本發明一實施例修改單元格中數據的流程示意圖。
如圖1、2、3、4、5所示,本發明電子表格的文件格式由文件頭及子表數據組成。文件頭包含了文件標識、子表數、子表名及子表在文件中的地址等信息。在子表之間預留一定的空閑空間,使數據移動局限在子表內。單元格數據之間、每行之間、每個子表之間均采用分隔字符。
上面所述的這種文件不能保存為表格的格式,而僅能保存表格的數據,為了使上述的電子文件在PC上也能正常打開。可在PC內設置用于將嵌入式電子表格文件與PC電子表格文件互為轉換的模塊,實現嵌入式電子表格的文件與PC電子表格文件兩種文件格式之間的轉換,為了使嵌入式電子表格文件與PC電子表格數據同步,需要在生成嵌入式電子表格文件的同時,還生成與該嵌入式電子表格文件相應的、保存有該表格格式修改記錄的表格格式文件。為了節省存儲空間,在嵌入式產品內設有用于將已在嵌入式產品上調整好的固定格式表格保存為格式模板文件的表格格式管理模塊。該管理模塊允許用戶選擇一種表格格式模板,在轉換文件時,把嵌入式電子表格的數據注入到表格格式模板中,如果用戶選擇的模板正好是該表格的格式,兩者就合成了一個完整的用戶所需的電子表格文件。通過這種方法,把PC的電子表格數據與表格格式分離后,文件的長度大大減小;電子表格數據經嵌入式產品上表格處理程序處理后返回PC并與原表格格式合成一個文件后,該表格的格式與分離前的格式完全相同的,嵌入式產品上的表格數據修改工作就相當于在PC上的表格數據修改工作,嵌入式產品上的表格數據與PC上的表格數據交換達到了數據同步交換。
根據用戶的需要,在實際操作中可為每一個表格文件提供一個表格格式文件,在嵌入式產品上對表格格式進行的修改后,表格格式文件記錄修改后的表格格式,以免下次打開此表格時又重新調整。由于表格的格式相對比較固定,用戶可以把一些固定格式的表格先在嵌入式產品上調整好,然后把這一格式存為格式模板文件,下次要用到此類格式時,只需要從格式模板文件中提取即可。
由于嵌入式產品受到硬件的限制,存儲空間較小,表格的緩沖區大小受到了嚴格的限制;所以,要求緩沖后數據查找、修改的效率應較高。為了充分利用狹窄的緩沖區,可根據單元格內數據的實際長度為它分配相應的存儲空間,但是,這樣做會使數據的查找與修改的效率低下。為了提高數據查找與修改的效率,本發明首先以一為正整數的塊空閑參數將整個子表分塊,把子表分成若干個塊,并且每個塊都至少包括塊在緩沖區中的地址、塊內數據實際長度信息和一個或一個以上的記錄;該記錄中包含有一個或一個以上的單元格;此外,嵌入式電子表格文件還包含有用于分隔子表的分隔字符。
如圖8所示,在為上面所述的塊及單元格分配存儲空間的時候,同時為它們分配一定的空閑存儲空間,以避免在修改數據時導致大量的數據搬移操作,其具體包括首先,利用單元格存儲空間分配的方法為單元格分配存儲空間;然后,根據塊內所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應的存儲空間。
所述的單元格存儲空間分配的方法包括如下的步驟1、從電子表格文件的記錄中提取單個單元格數據,獲取該單元格的數據量;2、將該單元格數據實際的長度值除以單元格空閑參數后取整再加1;3、將通過步驟2獲得的數值乘以單元格空閑參數,獲得單元格的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中單元格空閑參數為一設定的正整數值。
如圖9所示,所述的塊存儲空間分配的方法包括如下的步驟1、統計塊中所有記錄的單元格的存儲空間長度;2、將塊內數據實際存儲空間長度值除以塊空閑參數后取整再加1;3、將通過步驟2獲得的數值乘以塊空閑參數,獲得塊的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中塊空閑參數為一設定的正整數值。
按照上面所述的方法,對電子表格進行分塊處理后,當查找數據時,首先確定該數據所在的塊,再得到該塊在緩沖區中的地址,最后在該塊內順序查找得到數據,從而避免了每次查找都要檢索整個緩沖區的煩瑣,使查找的效率得到大大改善;當數據修改時,修改后數據的長度可能比修改前長,為了存下這個修改后的數據,就需要將后面的數據向后移出一定空間;由于在分塊時,在兩塊之間預先留有一定的空閑存儲空間,所以避免了數據的大量移動,把數據的移動限制在數據所在塊內。當塊內空閑存儲空間仍不足以存下這個數據時,再重新為該塊分配存儲空間,同時也重新分配一定的空閑存儲空間。
另外,在為每個單元格分配存儲空間時也分配一定的空閑存儲空間。這樣只要修改后的單元格數據的長度不超過這個空間,就不需要再為其重新分配存儲空間。
本發明中只要使用者不提出優化緩沖區,或系統沒有出現存儲資源不足的情況,就不回收多余的空閑空間,這樣加快了執行效率。
每個塊所占的存儲空間由該塊的后續塊在緩沖區的地址與該塊在緩沖區的地址相減得出,最后一個塊所占的存儲空間由緩沖區的大小與此塊在緩沖區的地址相減得出。
本發明在為每個單元格分配存儲空間時,還額外分配一個字節標識來該單元格所占的存儲空間;在查找數據時,知道了該單元格所占的空間,就知道了下一個單元格的地址;修改數據時,就可以該單元格數據為依據,決定是否為這一單元格增加存儲空間。
如圖6所示,嵌入式電子表格的格式包括每行高、每列寬、每個單元格的實際表格線、可顯示的首行、首列及固定顯示行、列等。其中,可顯示的首行、首列,固定顯示行、列都作為表頭進行存儲;每行高、每列寬分別由數組存儲;由于電子表格中單元格的數目巨大,如果為每一個單元格的表格線數據都提供相應的存儲空間,這在嵌入式產品上是不現實的。本發明將由上、下、左、右四根線組成單元格作為缺省單元格(圖6中非陰影部分),該類單元格不占用存儲空間;將非缺省單元格作為特殊單元格(圖6中陰影部分),對于特殊單元格用登記表的形式進行存儲,存儲時不僅記錄該單元格的實際表格線數據,而且記錄該單元格所在行、列信息。
如圖7所示,在公式處理方面,為保持與PC上電子表格的兼容,計算公式以字符串的形式存儲,為標識該字符串為計算公式,該字符串的第一個字符為標識符號,在本實施例中為“=”號。為實現計算功能,首先,確定計算最基本的運算單元,將計算公式構架在加、減、乘、除、乘方及開方的基礎上,分別用不同的子函數實現。然后,設置能把一個計算公式分解成運算單元的公式解釋器。最后,實現利用一個公式運算器執行解釋好的公式并返回結果。在公式計算過程中,為了節省公式解釋占用的時間,采用“解釋一次,執行多次”的方法,即在完成公式解釋工作后,將解釋好的公式以運算單元序列的方式存放到一存儲空間,以后需要再次執行該公式時,直接取出解釋好的公式,即該運算單元序列執行。
上面所述的公式解釋和執行包括如下內容和步驟1、利用與計算公式中各運算符號及運算對象相應的函數將該計算公式在加、減、乘、除、乘方及開方的基礎上形成的該計算公式的函數序列;2、將該計算公式的函數序列分解成運算單元序列;3、執行該運算單元序列,并返回計算結果。
在上面所述的步驟2之后,還將該運算單元序列存儲起來,當再次運算該公式時,可直接將所存儲的該公式的運算單元序列調出執行,而不再解釋。
如圖10所示,本發明一具體實施例的電子表格文件的操作步驟如下1、掃描磁盤并把電子表格文件在一有“新建”、“打開”兩按鈕的窗口中列表;2、新建或打開該文件;3、從表格文件中提取第一子表的數據并以一定格式在電子表格文件中緩沖;4、從格式文件中提取第一子表的格式;5、顯示表格的第一子表;6、編輯表格;7、存盤退出。
如圖11所示,在上述操作步驟中新建一電子表格的具體步驟如下1、生成一空的電子表格文件;2、判斷是否套用現有格式,如果不是,則以缺省方式建立本電子表格的格式文件;3、否則,打開緩沖文件并把現有的格式列表供用戶選擇;4、以用戶選擇的表格格式建立本表格的格式文件。
如圖12所示,本發明中打開一現有電子表格文件的具體步驟如下1、提取該文件的頭部信息;2、提取該文件的標識字符串;
3、判斷該文件是否能被本程序處理,如果不是,則打印出錯信息;4、判斷是否套用現有格式,不是則以缺省方式建立本表格的格式文件,轉入步驟7;5、否則,打開緩沖文件并把現有格式列表供用戶選擇6、以用戶選擇的表格格式建立本表格的格式文件7、文件中寫入被本程序處理過的標識如圖13所示,本發明一具體實施例的子表數據塊存儲空間分配的步驟如下1、把電子表格文件指針指向子表數據開始處;2、讀取一字節數據;3、判斷該數據是否為單元格分隔符,如果是,則轉入步驟7;4、否則,判斷該數據是否為行分隔符,如果是,則轉入步驟7;5、否則,判斷該數據是否為子表結束符,如果是,則轉入步驟7;6、否則,把該數據加入單元格數據緩沖區,轉入步驟2;7、計算單元格數據緩沖區中數據的長度并以之為依據為這一數據在緩沖文件中分配一存儲空間;8、先向緩沖文件中寫入程序為此數據分配的空間大小再寫入此數據;9、如果該數據為單元格分隔符,寫入行分隔符,轉入步驟2;10、如果該數據為行分隔符,判斷是否滿足分塊條件,如果不是,則寫入行分隔符,轉入步驟2;11、否則,為本塊在緩沖文件分配空閑空間并記錄本塊的在緩沖區的地址與實際數據長度,轉入步驟2;12、如果該數據為子表結束符,跳出循環,完成緩沖。
如圖14所示,本發明一具體實施例中修改單元格數據具有如下的步驟1、由單元格所在行得出其所在塊;2、從該塊的開始地址逐步檢索到單元格所在行開始地址,再檢索到單元格實際存放的地址并提取數據;3、在原數據基礎上修改數據;4、如果修改后數據量比原數據量小,則直接寫入修改后的數據;5、否則,判斷該單元格的空閑空間能否存下多出的數據量,如果可以,轉入步驟9;6、否則,判斷該單元格所在塊的空閑空間能否存下多出的數據量,如果可以,轉入步驟8;7、否則,移動該塊后面的數據,為該塊提供更多的空間,并修改后面所有塊的地址參數;8、在該塊內移動單元格后面的數據,為該單元分配更多的空間;9、寫入該單元實際所占用的存儲空間,并寫入修改后的數據。
權利要求
1.一種電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于電子表格數據的存儲空間分配有用于緩沖被修改數據的空閑空間,在修改電子表格數據時,該空閑空間用于緩沖電子表格因修改而增大的數據量。
2.如權利要求1所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的電子表格數據的修改包括如下的步驟a、由單元格所在記錄得出其所在塊;b、從該塊的開始地址逐步檢索到單元格所在記錄開始地址,再檢索到單元格實際存放的地址并提取數據;c、當在原數據基礎上修改數據時;d、如果修改后數據量比原數據量小,則直接寫入修改后的數據;e、否則,判斷該單元格的空閑空間能否存儲多出的數據量,如果能存儲,轉入步驟i;f、否則,判斷該單元格所在塊的空閑空間能否存下多出的數據量,如果能存儲,轉入步驟h;g、否則,依據電子表格文件存儲空間的分配方法,移動該塊后面的數據,為該塊提供更多的空間,并修改后面所有塊的地址參數;h、依據電子表格文件存儲空間的分配的方法,在該塊內移動單元格后面的數據,為該單元分配更多的空間;i、寫入該單元實際所占用的存儲空間,并寫入修改后的數據。
3.如權利要求2所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的電子表格文件存儲空間的分配方法為對電子表格文件分配存儲空間時,先為單元格分配存儲空間;然后根據塊內所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應的存儲空間。
4.如權利要求3所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的為單元格分配存儲空間包括如下的步驟a、從電子表格文件的記錄中提取單個單元格數據,獲取該單元格的數據量;b、將該單元格數據實際的長度值除以單元格空閑參數后取整再加1;c、將通過步驟b獲得的數值乘以單元格空閑參數,獲得單元格的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中單元格空閑參數為一設定的正整數值。
5.如權利要求3所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的塊存儲空間分配的方法包括如下的步驟a、統計塊中所有記錄的單元格的存儲空間長度;b、將塊內數據實際存儲空間長度值除以塊空閑參數后取整再加1;c、將通過步驟b獲得的數值乘以塊空閑參數,獲得塊的實際存儲空間長度,并根據該存儲空間長度值分配相應的存儲緩沖區;其中塊空閑參數為一設定的正整數值。
6.如權利要求4或5所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于為每個單元格分配存儲空間時,還額外分配一個用于標識該單元格所占存儲空間的字節。
7.如權利要求1所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于它還包括為加快電子表格數據存儲的速度并節省電子表格格式信息的存儲空間,在電子表格文件的子表表頭部分存儲該子表單元格的格式信息;所有的單元格分為特殊單元格和缺省單元格,在存儲單元格格式信息時,僅存儲特殊單元格的格式信息。
8.如權利要求7所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的特殊單元格為固定顯示行或固定顯示列的單元格或首行或首列的單元格。
9.如權利要求7所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于缺省單元格為除特殊單元格以外的所有單元格。
10.如權利要求7或8所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于特殊單元格格式信息至少包括該單元格實際格式信息及該單元格所在行和列的數據。
11.如權利要求1所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于電子表格單元格內的計算公式以字符串的形式存儲,該計算公式的解釋和執行至少包括a、利用與計算公式中各運算符號及運算對象相應的函數將該計算公式在加、減、乘、除、乘方及開方的基礎上形成的該計算公式的函數序列;b、將該計算公式的函數序列分解成運算單元序列;c、執行該運算單元序列,并返回計算結果。
12.如權利要求11所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于在步驟b之后,還將該運算單元序列存儲起來,當再次運算該公式時,可直接將所存儲的該公式的運算單元序列調出執行,而不再解釋。
13.如權利要求11所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的以字符串形式存儲的計算公式的啟始部分為一特定字符串。
14.如權利要求1或7所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的電子表格文件至少由文件頭、一個或一個以上的子表組成,其中文件頭至少包含有文件標識信息、子表數量信息、子表名以及子表在文件中的地址信息。
15.如權利要求14所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的子表至少包含有表頭及一個或一個以上的塊。
16.如權利要求15所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的塊至少包含塊在緩沖區中的地址、塊內數據實際長度信息和一個或一個以上的記錄,該記錄包含有一個或一個以上的單元格。
17.如權利要求15或16所述的電子表格文件節省存儲空間并提高數據處理速度的方法,其特征在于所述的電子表格文件還包含有用于分隔子表或塊或單元格的分隔字符。
全文摘要
一種電子表格文件節省存儲空間并提高數據處理速度的方法,電子表格數據的存儲空間分配有緩沖被修改數據的空閑空間,修改電子表格數據時,空閑空間緩沖電子表格因修改而增大的數據量;解決了節省存儲空間與節省能源之間的矛盾;即在節省數據處理時間的同時,避免了增加數據和程序的存儲空間;將電子表格格式信息分類存儲,電子表格的公式以字符串的形式存儲,一次解釋,多次執行,節省了公式運算的時間和電子表格的存儲空間。
文檔編號G06F12/08GK1399196SQ0112059
公開日2003年2月26日 申請日期2001年7月25日 優先權日2001年7月25日
發明者曾志榮 申請人:曾志榮