欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法

文檔序號:6558413閱讀:347來源:國知局
專利名稱:電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,特別是指一種用于在嵌入式產(chǎn)品中通過適當(dāng)增加空閑存儲空間提高電子表格數(shù)據(jù)處理的速度;為節(jié)省存儲空間,分類存儲電子表格格式信息;及提高電子表格公式處理速度的方法,屬于計算機(jī)數(shù)據(jù)處理領(lǐng)域。
隨著電子技術(shù)和計算機(jī)技術(shù)的不斷發(fā)展,大量的嵌入式產(chǎn)品進(jìn)入了人們生活的各個方面。一方面,相對于PC機(jī)的性能而言,規(guī)格參數(shù),嵌入式產(chǎn)品無論在存儲能力方面,還是在硬件的處理速度方面都還有極大的差距。以目前的PDA為例其閃存的容量一般為2M-4M字節(jié),僅能用于固化200多萬漢字的資料,僅可記錄80多萬漢字或160多萬英文字母。在這么有限的空間里既要存儲操作系統(tǒng),又要容納多個應(yīng)用軟件和大量客戶信息,實在是力不從心;另一方面,表格的文件格式,是嵌入式產(chǎn)品與PC交換數(shù)據(jù)的媒介,根據(jù)市場調(diào)查得來的結(jié)果,嵌入式產(chǎn)品上大部分表格數(shù)據(jù)來自PC上的電子表格,而嵌入式產(chǎn)品處理后的表格數(shù)據(jù)也必不可少傳回PC,這樣嵌入式產(chǎn)品上表格文件格式與PC的電子表格文件保持兼容將給用戶帶來極大方便,這就需要在開發(fā)電子表格程序時,將節(jié)省存儲空間作為首要考慮的內(nèi)容之一。
在一般的嵌入式產(chǎn)品硬件平臺上運行的電子表格程序所提供的功能中,由于沒有反選區(qū),沒有強大的查找功能,沒有編輯表格線,沒有表頭固定顯示,沒有計算等功能,所以遠(yuǎn)遠(yuǎn)不能滿足用戶的需要;在配置較高的硬件平臺上運行的電子表格程序,雖然功能比較齊全,但軟件所消耗的硬件資源較多,相對硬件的價位較高,一般用戶無法承受。
面對嵌入式產(chǎn)品硬件的局限,不可能在嵌入式產(chǎn)品上處理大量的數(shù)據(jù)信息,但為了提高工作效率,可以在PC機(jī)上利用其電子表格軟件處理了大量的數(shù)據(jù)信息后,再傳送到嵌入式產(chǎn)品上,以便于使用者外出利用該數(shù)據(jù);這就要求PC機(jī)的電子表格與嵌入式產(chǎn)品的電子表格能夠?qū)崿F(xiàn)同步數(shù)據(jù)傳送。另外,為了方便電子表格的升級、移植,還需要將電子表格模塊化處理。
目前,嵌入式產(chǎn)品上的表格處理方法都在盡量利用PC機(jī)上的表格處理方法。盡管在界面上各類表格處理程序都做出了各自的特色,但在核心數(shù)據(jù)處理方面都采用PC機(jī)的處理方式,它們有以下特點為了使所處理的表格與PC上處理的表格保持兼容,一些表格文件干脆直接采用PC的表格文件,這種文件格式復(fù)雜并且內(nèi)含的大量表格格式數(shù)據(jù),占用了大量的存儲空間,對于嵌入式產(chǎn)品內(nèi)極為有限的存儲空間來說,是無法承受的的。由于嵌入式產(chǎn)品的存儲空間有限,因此每次只能緩沖一個子表,使子表之間在切換時不得不先存盤,而使用者在使用嵌入式產(chǎn)品處理表格時往往只作少量修改工作,為存下這些修改,就需要作大量數(shù)據(jù)移動工作,非常煩瑣并且需要耗費大量的存儲空間,降低了運行的速度。
另一些表格文件則采用可處理的逗號分隔式的文件格式,這種文件格式僅保存了表格的數(shù)據(jù),并且只能存儲PC表格文件的一個子表,由于嵌入式產(chǎn)品只有不斷與PC交換數(shù)據(jù)才能充分發(fā)揮嵌入式產(chǎn)品的長處,當(dāng)這種表格文件經(jīng)嵌入式產(chǎn)品處理后返回PC上,并用PC的表格處理軟件文件打開時,就會發(fā)現(xiàn)雖然數(shù)據(jù)沒有發(fā)生錯誤,但其表格的格式卻發(fā)生了很大的改變。
另外,在表格數(shù)據(jù)處理時,一些處理方法通常需要采用數(shù)組來進(jìn)行緩沖,它為每一個單元格分配同樣的存儲長度,而不管其內(nèi)數(shù)據(jù)的實際長度,而另外一些方法則根據(jù)單元格內(nèi)數(shù)據(jù)的實際長度為單元格分配存儲空間。雖然,這兩種方法容易實現(xiàn),但前者由于受到嵌入式產(chǎn)品RAM空間的限制,不能用于處理通用性的表格;而后者則由于嵌入式產(chǎn)品CPU主頻的限制,其效率往往很低。
綜上所述,現(xiàn)有技術(shù)存在著如下的缺陷與不足1)節(jié)省存儲空間與節(jié)省能源之間存在著巨大的矛盾;即在通過對數(shù)據(jù)進(jìn)行處理而節(jié)省了了存儲空間的同時,使得該處理方法所消耗的時間相對增長;反之,采用節(jié)省時間的方法,又不可避免地增加了數(shù)據(jù)的存儲空間。
2)數(shù)據(jù)同步性差;現(xiàn)有技術(shù)在將PC機(jī)上的電子表格轉(zhuǎn)化為嵌入式產(chǎn)品上電子表格的過程中,只保存表格的內(nèi)容,而對表格的子表、表格的格式不予保留;表格的表頭也不能固定顯示;表格強大的查找功能由此失效,表格的計算功能受到衰減,進(jìn)而對同步數(shù)據(jù)傳送產(chǎn)生很大的影響。
3)功能不平衡、操作不便;即功能完善的電子表格處理方法在一般的嵌入式產(chǎn)品硬件平臺上根本運行不了或運行速度極慢,而高檔的嵌入式產(chǎn)品的價格昂貴,一般用戶無法承受;而在一般的嵌入式產(chǎn)品硬件平臺上運行良好的電子表格所提供的功能又遠(yuǎn)遠(yuǎn)無法滿足用戶的需求。
4)電子表格處理軟件的代碼冗長、移植性差;許多嵌入式產(chǎn)品的電子表格操作復(fù)雜,功能繁多,它依靠大量的編程來實現(xiàn),表現(xiàn)在技術(shù)上就是程序的代碼冗長,程序煩瑣,不具有良好的移植性。
有鑒于現(xiàn)有的嵌入式產(chǎn)品電子表格的數(shù)據(jù)處理技術(shù)的缺陷和不足,本發(fā)明的主要目的在于提供一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,它解決在節(jié)省存儲空間與節(jié)省能源之間存在著的矛盾;即在節(jié)省數(shù)據(jù)處理時間的同時,可避免增加數(shù)據(jù)的存儲空間。
本發(fā)明的另一目的在于提供一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,它將電子表格的格式信息分類存儲,節(jié)省電子表格的存儲空間。
本發(fā)明的又一目的在于提供一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,電子表格的公式以字符串的形式存儲,并且采用一次解釋,多次執(zhí)行的方法節(jié)省公式運算的時間。
本發(fā)明的目的是通過如下的技術(shù)方案實現(xiàn)的一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,電子表格數(shù)據(jù)的存儲空間分配有用于緩沖被修改數(shù)據(jù)的空閑空間,在修改電子表格數(shù)據(jù)時,該空閑空間用于緩沖電子表格因修改而增大的數(shù)據(jù)量。
所述的電子表格數(shù)據(jù)的修改包括如下的步驟1、由單元格所在記錄得出其所在塊;2、從該塊的開始地址逐步檢索到單元格所在記錄開始地址,再檢索到單元格實際存放的地址并提取數(shù)據(jù);3、當(dāng)在原數(shù)據(jù)基礎(chǔ)上修改數(shù)據(jù)時;4、如果修改后數(shù)據(jù)量比原數(shù)據(jù)量小,則直接寫入修改后的數(shù)據(jù);5、否則,判斷該單元格的空閑空間能否存儲多出的數(shù)據(jù)量,如果能存儲,轉(zhuǎn)入步驟9;6、否則,判斷該單元格所在塊的空閑空間能否存下多出的數(shù)據(jù)量,如果能存儲,轉(zhuǎn)入步驟8;7、否則,依據(jù)電子表格文件存儲空間的分配方法,移動該塊后面的數(shù)據(jù),為該塊提供更多的空間,并修改后面所有塊的地址參數(shù);8、依據(jù)電子表格文件存儲空間的分配的方法,在該塊內(nèi)移動單元格后面的數(shù)據(jù),為該單元分配更多的空間;9、寫入該單元實際所占用的存儲空間,并寫入修改后的數(shù)據(jù)。
所述的電子表格文件存儲空間的分配方法為對電子表格文件分配存儲空間時,先為單元格分配存儲空間;然后根據(jù)塊內(nèi)所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應(yīng)的存儲空間。
所述的為單元格分配存儲空間包括如下的步驟1、從電子表格文件的記錄中提取單個單元格數(shù)據(jù),獲取該單元格的數(shù)據(jù)量;2、將該單元格數(shù)據(jù)實際的長度值除以單元格空閑參數(shù)后取整再加1;3、將通過步驟2獲得的數(shù)值乘以單元格空閑參數(shù),獲得單元格的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中單元格空閑參數(shù)為一設(shè)定的正整數(shù)值。
所述的塊存儲空間分配的方法包括如下的步驟1、統(tǒng)計塊中所有記錄的單元格的存儲空間長度;2、將塊內(nèi)數(shù)據(jù)實際存儲空間長度值除以塊空閑參數(shù)后取整再加1;
3、將通過步驟2獲得的數(shù)值乘以塊空閑參數(shù),獲得塊的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中塊空閑參數(shù)為一設(shè)定的正整數(shù)值。
為每個單元格分配存儲空間時,還額外分配一個用于標(biāo)識該單元格所占存儲空間的字節(jié)。
所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法還包括為加快電子表格數(shù)據(jù)存儲的速度并節(jié)省電子表格格式信息的存儲空間,在電子表格文件的子表表頭部分存儲該子表單元格的格式信息;所有的單元格分為特殊單元格和缺省單元格,在存儲單元格格式信息時,僅存儲特殊單元格的格式信息。
所述的特殊單元格為固定顯示行或固定顯示列的單元格或首行或首列的單元格。
缺省單元格為除特殊單元格以外的所有單元格。
特殊單元格格式信息至少包括該單元格實際格式信息及該單元格所在行和列的數(shù)據(jù)。
所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法還包括電子表格單元格內(nèi)的計算公式以字符串的形式存儲,該計算公式的解釋和執(zhí)行至少包括1、利用與計算公式中各運算符號及運算對象相應(yīng)的函數(shù)將該計算公式在加、減、乘、除、乘方及開方的基礎(chǔ)上形成的該計算公式的函數(shù)序列;2、將該計算公式的函數(shù)序列分解成運算單元序列;3、執(zhí)行該運算單元序列,并返回計算結(jié)果。
在上述的步驟2之后,還將該運算單元序列存儲起來,當(dāng)再次運算該公式時,可直接將所存儲的該公式的運算單元序列調(diào)出執(zhí)行,而不再解釋。
所述的以字符串形式存儲的計算公式的啟始部分為一特定字符串。
所述的電子表格文件至少由文件頭、一個或一個以上的子表組成,其中文件頭至少包含有文件標(biāo)識信息、子表數(shù)量信息、子表名以及子表在文件中的地址信息。
所述的子表至少包含有表頭及一個或一個以上的塊。
所述的塊至少包含塊在緩沖區(qū)中的地址、塊內(nèi)數(shù)據(jù)實際長度信息和一個或一個以上的記錄,該記錄包含有一個或一個以上的單元格。
所述的電子表格文件還包含有用于分隔子表或塊或單元格的分隔字符。
本發(fā)明通過所提供的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,具有如下的優(yōu)點和有益的效果1)通過電子表格數(shù)據(jù)存儲空間分配的方法,首先,為單元格分配存儲空間;然后,根據(jù)塊內(nèi)所有單元格所分配的存儲空間,為該塊分配相應(yīng)的存儲空間。并且,在上述的空間分配中,通過加入空閑存儲空間實現(xiàn)各級數(shù)據(jù)的緩沖,避免了在修改電子表格數(shù)據(jù)時數(shù)據(jù)的頻繁移動操作,加快了執(zhí)行的速度,節(jié)省了應(yīng)用程序所占用的存儲空間。
2)通過電子表格公式解釋和執(zhí)行的方法對以字符串的形式存儲的計算公式,在完成公式解釋工作后,將該公式存儲起來,實現(xiàn)“解釋一次,執(zhí)行多次”,加快了公式的計算速度。
3)利用單元格表格信息分類存儲的方法將所有的單元格分類,并且僅存儲特殊單元格的表格信息,節(jié)省了電子表格的存儲空間。
本發(fā)明解決了在節(jié)省存儲空間與節(jié)省能源之間存在著的矛盾,在節(jié)省數(shù)據(jù)處理時間的同時,可避免增加數(shù)據(jù)的存儲空間;在將PC機(jī)上的電子表格轉(zhuǎn)化為嵌入式產(chǎn)品上電子表格的過程中,在保存表格的內(nèi)容的同時,對電子表格的子表、表格的格式也做了保留,使得表格的表頭能夠固定顯示,表格的查找功能不會失效,表格的計算功能得到了保證,進(jìn)而實現(xiàn)了同步數(shù)據(jù)傳送;本發(fā)明提供的處理方法適用于任何嵌入式產(chǎn)品硬件平臺,其在提供運行良好的電子表格功能的同時,不會增加使用的成本;本發(fā)明提供的處理方法的編程規(guī)模小,程序的代碼精簡,并且由于采用了模塊化的結(jié)構(gòu),因此具有良好的移植性。
以下結(jié)合附圖及具體的實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明

圖1為本發(fā)明電子表格文件結(jié)構(gòu)示意圖。
圖2為本發(fā)明電子表格子表的結(jié)構(gòu)示意圖。
圖3為本發(fā)明電子表格子表中塊的結(jié)構(gòu)示意圖。
圖4為本發(fā)明電子表格中記錄的結(jié)構(gòu)示意圖。
圖5為本發(fā)明單元格存儲空間的結(jié)構(gòu)示意圖。
圖6為本發(fā)明一實施例具有特殊單元格及缺省單元格的電子表格示意圖。
圖7為本發(fā)明一實施例計算公式解釋和執(zhí)行實施例的流程示意圖。
圖8為本發(fā)明單元格存儲空間分配的原理流程示意圖。
圖9為本發(fā)明塊存儲空間分配的原理流程示意圖。
圖10為本發(fā)明一實施例電子表格文件操作的總體流程示意圖。
圖11為圖10中“新建”操作的流程示意圖。
圖12為圖10中“打開”操作的流程示意圖。
圖13為本發(fā)明一實施例子表數(shù)據(jù)塊存儲空間分配的流程示意圖。
圖14為本發(fā)明一實施例修改單元格中數(shù)據(jù)的流程示意圖。
如圖1、2、3、4、5所示,本發(fā)明電子表格的文件格式由文件頭及子表數(shù)據(jù)組成。文件頭包含了文件標(biāo)識、子表數(shù)、子表名及子表在文件中的地址等信息。在子表之間預(yù)留一定的空閑空間,使數(shù)據(jù)移動局限在子表內(nèi)。單元格數(shù)據(jù)之間、每行之間、每個子表之間均采用分隔字符。
上面所述的這種文件不能保存為表格的格式,而僅能保存表格的數(shù)據(jù),為了使上述的電子文件在PC上也能正常打開??稍赑C內(nèi)設(shè)置用于將嵌入式電子表格文件與PC電子表格文件互為轉(zhuǎn)換的模塊,實現(xiàn)嵌入式電子表格的文件與PC電子表格文件兩種文件格式之間的轉(zhuǎn)換,為了使嵌入式電子表格文件與PC電子表格數(shù)據(jù)同步,需要在生成嵌入式電子表格文件的同時,還生成與該嵌入式電子表格文件相應(yīng)的、保存有該表格格式修改記錄的表格格式文件。為了節(jié)省存儲空間,在嵌入式產(chǎn)品內(nèi)設(shè)有用于將已在嵌入式產(chǎn)品上調(diào)整好的固定格式表格保存為格式模板文件的表格格式管理模塊。該管理模塊允許用戶選擇一種表格格式模板,在轉(zhuǎn)換文件時,把嵌入式電子表格的數(shù)據(jù)注入到表格格式模板中,如果用戶選擇的模板正好是該表格的格式,兩者就合成了一個完整的用戶所需的電子表格文件。通過這種方法,把PC的電子表格數(shù)據(jù)與表格格式分離后,文件的長度大大減小;電子表格數(shù)據(jù)經(jīng)嵌入式產(chǎn)品上表格處理程序處理后返回PC并與原表格格式合成一個文件后,該表格的格式與分離前的格式完全相同的,嵌入式產(chǎn)品上的表格數(shù)據(jù)修改工作就相當(dāng)于在PC上的表格數(shù)據(jù)修改工作,嵌入式產(chǎn)品上的表格數(shù)據(jù)與PC上的表格數(shù)據(jù)交換達(dá)到了數(shù)據(jù)同步交換。
根據(jù)用戶的需要,在實際操作中可為每一個表格文件提供一個表格格式文件,在嵌入式產(chǎn)品上對表格格式進(jìn)行的修改后,表格格式文件記錄修改后的表格格式,以免下次打開此表格時又重新調(diào)整。由于表格的格式相對比較固定,用戶可以把一些固定格式的表格先在嵌入式產(chǎn)品上調(diào)整好,然后把這一格式存為格式模板文件,下次要用到此類格式時,只需要從格式模板文件中提取即可。
由于嵌入式產(chǎn)品受到硬件的限制,存儲空間較小,表格的緩沖區(qū)大小受到了嚴(yán)格的限制;所以,要求緩沖后數(shù)據(jù)查找、修改的效率應(yīng)較高。為了充分利用狹窄的緩沖區(qū),可根據(jù)單元格內(nèi)數(shù)據(jù)的實際長度為它分配相應(yīng)的存儲空間,但是,這樣做會使數(shù)據(jù)的查找與修改的效率低下。為了提高數(shù)據(jù)查找與修改的效率,本發(fā)明首先以一為正整數(shù)的塊空閑參數(shù)將整個子表分塊,把子表分成若干個塊,并且每個塊都至少包括塊在緩沖區(qū)中的地址、塊內(nèi)數(shù)據(jù)實際長度信息和一個或一個以上的記錄;該記錄中包含有一個或一個以上的單元格;此外,嵌入式電子表格文件還包含有用于分隔子表的分隔字符。
如圖8所示,在為上面所述的塊及單元格分配存儲空間的時候,同時為它們分配一定的空閑存儲空間,以避免在修改數(shù)據(jù)時導(dǎo)致大量的數(shù)據(jù)搬移操作,其具體包括首先,利用單元格存儲空間分配的方法為單元格分配存儲空間;然后,根據(jù)塊內(nèi)所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應(yīng)的存儲空間。
所述的單元格存儲空間分配的方法包括如下的步驟1、從電子表格文件的記錄中提取單個單元格數(shù)據(jù),獲取該單元格的數(shù)據(jù)量;2、將該單元格數(shù)據(jù)實際的長度值除以單元格空閑參數(shù)后取整再加1;3、將通過步驟2獲得的數(shù)值乘以單元格空閑參數(shù),獲得單元格的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中單元格空閑參數(shù)為一設(shè)定的正整數(shù)值。
如圖9所示,所述的塊存儲空間分配的方法包括如下的步驟1、統(tǒng)計塊中所有記錄的單元格的存儲空間長度;2、將塊內(nèi)數(shù)據(jù)實際存儲空間長度值除以塊空閑參數(shù)后取整再加1;3、將通過步驟2獲得的數(shù)值乘以塊空閑參數(shù),獲得塊的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中塊空閑參數(shù)為一設(shè)定的正整數(shù)值。
按照上面所述的方法,對電子表格進(jìn)行分塊處理后,當(dāng)查找數(shù)據(jù)時,首先確定該數(shù)據(jù)所在的塊,再得到該塊在緩沖區(qū)中的地址,最后在該塊內(nèi)順序查找得到數(shù)據(jù),從而避免了每次查找都要檢索整個緩沖區(qū)的煩瑣,使查找的效率得到大大改善;當(dāng)數(shù)據(jù)修改時,修改后數(shù)據(jù)的長度可能比修改前長,為了存下這個修改后的數(shù)據(jù),就需要將后面的數(shù)據(jù)向后移出一定空間;由于在分塊時,在兩塊之間預(yù)先留有一定的空閑存儲空間,所以避免了數(shù)據(jù)的大量移動,把數(shù)據(jù)的移動限制在數(shù)據(jù)所在塊內(nèi)。當(dāng)塊內(nèi)空閑存儲空間仍不足以存下這個數(shù)據(jù)時,再重新為該塊分配存儲空間,同時也重新分配一定的空閑存儲空間。
另外,在為每個單元格分配存儲空間時也分配一定的空閑存儲空間。這樣只要修改后的單元格數(shù)據(jù)的長度不超過這個空間,就不需要再為其重新分配存儲空間。
本發(fā)明中只要使用者不提出優(yōu)化緩沖區(qū),或系統(tǒng)沒有出現(xiàn)存儲資源不足的情況,就不回收多余的空閑空間,這樣加快了執(zhí)行效率。
每個塊所占的存儲空間由該塊的后續(xù)塊在緩沖區(qū)的地址與該塊在緩沖區(qū)的地址相減得出,最后一個塊所占的存儲空間由緩沖區(qū)的大小與此塊在緩沖區(qū)的地址相減得出。
本發(fā)明在為每個單元格分配存儲空間時,還額外分配一個字節(jié)標(biāo)識來該單元格所占的存儲空間;在查找數(shù)據(jù)時,知道了該單元格所占的空間,就知道了下一個單元格的地址;修改數(shù)據(jù)時,就可以該單元格數(shù)據(jù)為依據(jù),決定是否為這一單元格增加存儲空間。
如圖6所示,嵌入式電子表格的格式包括每行高、每列寬、每個單元格的實際表格線、可顯示的首行、首列及固定顯示行、列等。其中,可顯示的首行、首列,固定顯示行、列都作為表頭進(jìn)行存儲;每行高、每列寬分別由數(shù)組存儲;由于電子表格中單元格的數(shù)目巨大,如果為每一個單元格的表格線數(shù)據(jù)都提供相應(yīng)的存儲空間,這在嵌入式產(chǎn)品上是不現(xiàn)實的。本發(fā)明將由上、下、左、右四根線組成單元格作為缺省單元格(圖6中非陰影部分),該類單元格不占用存儲空間;將非缺省單元格作為特殊單元格(圖6中陰影部分),對于特殊單元格用登記表的形式進(jìn)行存儲,存儲時不僅記錄該單元格的實際表格線數(shù)據(jù),而且記錄該單元格所在行、列信息。
如圖7所示,在公式處理方面,為保持與PC上電子表格的兼容,計算公式以字符串的形式存儲,為標(biāo)識該字符串為計算公式,該字符串的第一個字符為標(biāo)識符號,在本實施例中為“=”號。為實現(xiàn)計算功能,首先,確定計算最基本的運算單元,將計算公式構(gòu)架在加、減、乘、除、乘方及開方的基礎(chǔ)上,分別用不同的子函數(shù)實現(xiàn)。然后,設(shè)置能把一個計算公式分解成運算單元的公式解釋器。最后,實現(xiàn)利用一個公式運算器執(zhí)行解釋好的公式并返回結(jié)果。在公式計算過程中,為了節(jié)省公式解釋占用的時間,采用“解釋一次,執(zhí)行多次”的方法,即在完成公式解釋工作后,將解釋好的公式以運算單元序列的方式存放到一存儲空間,以后需要再次執(zhí)行該公式時,直接取出解釋好的公式,即該運算單元序列執(zhí)行。
上面所述的公式解釋和執(zhí)行包括如下內(nèi)容和步驟1、利用與計算公式中各運算符號及運算對象相應(yīng)的函數(shù)將該計算公式在加、減、乘、除、乘方及開方的基礎(chǔ)上形成的該計算公式的函數(shù)序列;2、將該計算公式的函數(shù)序列分解成運算單元序列;3、執(zhí)行該運算單元序列,并返回計算結(jié)果。
在上面所述的步驟2之后,還將該運算單元序列存儲起來,當(dāng)再次運算該公式時,可直接將所存儲的該公式的運算單元序列調(diào)出執(zhí)行,而不再解釋。
如圖10所示,本發(fā)明一具體實施例的電子表格文件的操作步驟如下1、掃描磁盤并把電子表格文件在一有“新建”、“打開”兩按鈕的窗口中列表;2、新建或打開該文件;3、從表格文件中提取第一子表的數(shù)據(jù)并以一定格式在電子表格文件中緩沖;4、從格式文件中提取第一子表的格式;5、顯示表格的第一子表;6、編輯表格;7、存盤退出。
如圖11所示,在上述操作步驟中新建一電子表格的具體步驟如下1、生成一空的電子表格文件;2、判斷是否套用現(xiàn)有格式,如果不是,則以缺省方式建立本電子表格的格式文件;3、否則,打開緩沖文件并把現(xiàn)有的格式列表供用戶選擇;4、以用戶選擇的表格格式建立本表格的格式文件。
如圖12所示,本發(fā)明中打開一現(xiàn)有電子表格文件的具體步驟如下1、提取該文件的頭部信息;2、提取該文件的標(biāo)識字符串;
3、判斷該文件是否能被本程序處理,如果不是,則打印出錯信息;4、判斷是否套用現(xiàn)有格式,不是則以缺省方式建立本表格的格式文件,轉(zhuǎn)入步驟7;5、否則,打開緩沖文件并把現(xiàn)有格式列表供用戶選擇6、以用戶選擇的表格格式建立本表格的格式文件7、文件中寫入被本程序處理過的標(biāo)識如圖13所示,本發(fā)明一具體實施例的子表數(shù)據(jù)塊存儲空間分配的步驟如下1、把電子表格文件指針指向子表數(shù)據(jù)開始處;2、讀取一字節(jié)數(shù)據(jù);3、判斷該數(shù)據(jù)是否為單元格分隔符,如果是,則轉(zhuǎn)入步驟7;4、否則,判斷該數(shù)據(jù)是否為行分隔符,如果是,則轉(zhuǎn)入步驟7;5、否則,判斷該數(shù)據(jù)是否為子表結(jié)束符,如果是,則轉(zhuǎn)入步驟7;6、否則,把該數(shù)據(jù)加入單元格數(shù)據(jù)緩沖區(qū),轉(zhuǎn)入步驟2;7、計算單元格數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)的長度并以之為依據(jù)為這一數(shù)據(jù)在緩沖文件中分配一存儲空間;8、先向緩沖文件中寫入程序為此數(shù)據(jù)分配的空間大小再寫入此數(shù)據(jù);9、如果該數(shù)據(jù)為單元格分隔符,寫入行分隔符,轉(zhuǎn)入步驟2;10、如果該數(shù)據(jù)為行分隔符,判斷是否滿足分塊條件,如果不是,則寫入行分隔符,轉(zhuǎn)入步驟2;11、否則,為本塊在緩沖文件分配空閑空間并記錄本塊的在緩沖區(qū)的地址與實際數(shù)據(jù)長度,轉(zhuǎn)入步驟2;12、如果該數(shù)據(jù)為子表結(jié)束符,跳出循環(huán),完成緩沖。
如圖14所示,本發(fā)明一具體實施例中修改單元格數(shù)據(jù)具有如下的步驟1、由單元格所在行得出其所在塊;2、從該塊的開始地址逐步檢索到單元格所在行開始地址,再檢索到單元格實際存放的地址并提取數(shù)據(jù);3、在原數(shù)據(jù)基礎(chǔ)上修改數(shù)據(jù);4、如果修改后數(shù)據(jù)量比原數(shù)據(jù)量小,則直接寫入修改后的數(shù)據(jù);5、否則,判斷該單元格的空閑空間能否存下多出的數(shù)據(jù)量,如果可以,轉(zhuǎn)入步驟9;6、否則,判斷該單元格所在塊的空閑空間能否存下多出的數(shù)據(jù)量,如果可以,轉(zhuǎn)入步驟8;7、否則,移動該塊后面的數(shù)據(jù),為該塊提供更多的空間,并修改后面所有塊的地址參數(shù);8、在該塊內(nèi)移動單元格后面的數(shù)據(jù),為該單元分配更多的空間;9、寫入該單元實際所占用的存儲空間,并寫入修改后的數(shù)據(jù)。
權(quán)利要求
1.一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于電子表格數(shù)據(jù)的存儲空間分配有用于緩沖被修改數(shù)據(jù)的空閑空間,在修改電子表格數(shù)據(jù)時,該空閑空間用于緩沖電子表格因修改而增大的數(shù)據(jù)量。
2.如權(quán)利要求1所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的電子表格數(shù)據(jù)的修改包括如下的步驟a、由單元格所在記錄得出其所在塊;b、從該塊的開始地址逐步檢索到單元格所在記錄開始地址,再檢索到單元格實際存放的地址并提取數(shù)據(jù);c、當(dāng)在原數(shù)據(jù)基礎(chǔ)上修改數(shù)據(jù)時;d、如果修改后數(shù)據(jù)量比原數(shù)據(jù)量小,則直接寫入修改后的數(shù)據(jù);e、否則,判斷該單元格的空閑空間能否存儲多出的數(shù)據(jù)量,如果能存儲,轉(zhuǎn)入步驟i;f、否則,判斷該單元格所在塊的空閑空間能否存下多出的數(shù)據(jù)量,如果能存儲,轉(zhuǎn)入步驟h;g、否則,依據(jù)電子表格文件存儲空間的分配方法,移動該塊后面的數(shù)據(jù),為該塊提供更多的空間,并修改后面所有塊的地址參數(shù);h、依據(jù)電子表格文件存儲空間的分配的方法,在該塊內(nèi)移動單元格后面的數(shù)據(jù),為該單元分配更多的空間;i、寫入該單元實際所占用的存儲空間,并寫入修改后的數(shù)據(jù)。
3.如權(quán)利要求2所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的電子表格文件存儲空間的分配方法為對電子表格文件分配存儲空間時,先為單元格分配存儲空間;然后根據(jù)塊內(nèi)所有單元格所分配的存儲空間,利用塊存儲空間分配的方法為該塊分配相應(yīng)的存儲空間。
4.如權(quán)利要求3所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的為單元格分配存儲空間包括如下的步驟a、從電子表格文件的記錄中提取單個單元格數(shù)據(jù),獲取該單元格的數(shù)據(jù)量;b、將該單元格數(shù)據(jù)實際的長度值除以單元格空閑參數(shù)后取整再加1;c、將通過步驟b獲得的數(shù)值乘以單元格空閑參數(shù),獲得單元格的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中單元格空閑參數(shù)為一設(shè)定的正整數(shù)值。
5.如權(quán)利要求3所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的塊存儲空間分配的方法包括如下的步驟a、統(tǒng)計塊中所有記錄的單元格的存儲空間長度;b、將塊內(nèi)數(shù)據(jù)實際存儲空間長度值除以塊空閑參數(shù)后取整再加1;c、將通過步驟b獲得的數(shù)值乘以塊空閑參數(shù),獲得塊的實際存儲空間長度,并根據(jù)該存儲空間長度值分配相應(yīng)的存儲緩沖區(qū);其中塊空閑參數(shù)為一設(shè)定的正整數(shù)值。
6.如權(quán)利要求4或5所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于為每個單元格分配存儲空間時,還額外分配一個用于標(biāo)識該單元格所占存儲空間的字節(jié)。
7.如權(quán)利要求1所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于它還包括為加快電子表格數(shù)據(jù)存儲的速度并節(jié)省電子表格格式信息的存儲空間,在電子表格文件的子表表頭部分存儲該子表單元格的格式信息;所有的單元格分為特殊單元格和缺省單元格,在存儲單元格格式信息時,僅存儲特殊單元格的格式信息。
8.如權(quán)利要求7所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的特殊單元格為固定顯示行或固定顯示列的單元格或首行或首列的單元格。
9.如權(quán)利要求7所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于缺省單元格為除特殊單元格以外的所有單元格。
10.如權(quán)利要求7或8所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于特殊單元格格式信息至少包括該單元格實際格式信息及該單元格所在行和列的數(shù)據(jù)。
11.如權(quán)利要求1所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于電子表格單元格內(nèi)的計算公式以字符串的形式存儲,該計算公式的解釋和執(zhí)行至少包括a、利用與計算公式中各運算符號及運算對象相應(yīng)的函數(shù)將該計算公式在加、減、乘、除、乘方及開方的基礎(chǔ)上形成的該計算公式的函數(shù)序列;b、將該計算公式的函數(shù)序列分解成運算單元序列;c、執(zhí)行該運算單元序列,并返回計算結(jié)果。
12.如權(quán)利要求11所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于在步驟b之后,還將該運算單元序列存儲起來,當(dāng)再次運算該公式時,可直接將所存儲的該公式的運算單元序列調(diào)出執(zhí)行,而不再解釋。
13.如權(quán)利要求11所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的以字符串形式存儲的計算公式的啟始部分為一特定字符串。
14.如權(quán)利要求1或7所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的電子表格文件至少由文件頭、一個或一個以上的子表組成,其中文件頭至少包含有文件標(biāo)識信息、子表數(shù)量信息、子表名以及子表在文件中的地址信息。
15.如權(quán)利要求14所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的子表至少包含有表頭及一個或一個以上的塊。
16.如權(quán)利要求15所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的塊至少包含塊在緩沖區(qū)中的地址、塊內(nèi)數(shù)據(jù)實際長度信息和一個或一個以上的記錄,該記錄包含有一個或一個以上的單元格。
17.如權(quán)利要求15或16所述的電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,其特征在于所述的電子表格文件還包含有用于分隔子表或塊或單元格的分隔字符。
全文摘要
一種電子表格文件節(jié)省存儲空間并提高數(shù)據(jù)處理速度的方法,電子表格數(shù)據(jù)的存儲空間分配有緩沖被修改數(shù)據(jù)的空閑空間,修改電子表格數(shù)據(jù)時,空閑空間緩沖電子表格因修改而增大的數(shù)據(jù)量;解決了節(jié)省存儲空間與節(jié)省能源之間的矛盾;即在節(jié)省數(shù)據(jù)處理時間的同時,避免了增加數(shù)據(jù)和程序的存儲空間;將電子表格格式信息分類存儲,電子表格的公式以字符串的形式存儲,一次解釋,多次執(zhí)行,節(jié)省了公式運算的時間和電子表格的存儲空間。
文檔編號G06F12/08GK1399196SQ0112059
公開日2003年2月26日 申請日期2001年7月25日 優(yōu)先權(quán)日2001年7月25日
發(fā)明者曾志榮 申請人:曾志榮
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凤庆县| 黔江区| 英超| 襄城县| 甘肃省| 东安县| 高邮市| 灵石县| 耒阳市| 绩溪县| 中江县| 隆化县| 新安县| 耒阳市| 凤台县| 江孜县| 许昌县| 吕梁市| 山丹县| 宁远县| 新化县| 响水县| 吉木萨尔县| 蛟河市| 天门市| 漳州市| 牙克石市| 八宿县| 岚皋县| 洞口县| 承德市| 定西市| 洪洞县| 闽侯县| 会理县| 宁波市| 胶南市| 桑植县| 集安市| 天峻县| 北辰区|