[0040]由于视图尺寸相对固定,获取与该视图尺寸相匹配的部分数据块时,只要该数据块与视图尺寸确定的区域有交集,则该数据块为待显示的部分数据块中的一部分;获取与该视图尺寸相匹配的数据时,将各个数据块与视图尺寸确定的区域有交集的部分的数据获取到即可。
[0041]在一个可选的实施例中,在获取通过终端的屏幕输入的用于显示数据表的显示指令之前,该方法还可以包括:从手机(如终端)存储空间的XLS文件(如上述的数据表)中读取数据表的属性信息,其中,数据表的属性信息至少包括各个数据块的索引信息;将数据表的属性信息缓存至终端的内存中;利用缓存的各个数据块的索引信息从XLS文件中读取各个数据块在数据表中的位置。
[0042]在需要通过移动终端打开数据表时,将该数据表的属性信息加载到内存中,将该数据表的属性信息作为缓存,以供后续解析时反复读取数据,避免了频繁进行磁盘I/O操作导致解析慢的问题。
[0043]遍历整个加载完的内存缓存,解析出数据表的全局信息,该全局信息至少包括:该数据表中数据块的样式表、数据块的索引信息等,该数据块的索引信息可以为该数据块的名称,如数据块A。在获取索引信息之后,从终端的存储空间的XLS文件上读取各个索引信息对应的数据块的定位信息,该定位信息至少包括:行高、列宽、以及数据块的位置信息。
[0044]其中,行高用于表示数据块中包括的行数,列宽用于表示数据块中包括的列数,如行高8、列宽4,表示该数据块中包括8行4列;其中的数据块的位置信息用于表示该数据块在数据表的位置。
[0045]可选地,数据块的位置信息可以包括:首行内存偏移地址和每行单元格内存偏移地址,通过上述的首行内存偏移地址和每行记录项的内存偏移地址可以确定该数据块在数据表中的位置。
[0046]作为一个可选的实现方案,一个数据块的定位信息可以记录该数据块的起始行、结束行、起始列、结束列、首行内存偏移地址以及每行记录项的内存偏移地址。
[0047]在上述实施例中,仅将数据表的属性信息缓存如内存中,极大的减少了内存分配,同时不需要解析所有的数据块信息,在确定待显示的部分数据块之后,仅需从存储空间的XLS文件中读取待显示的部分数据块中与视图尺寸相匹配的数据,该读取的数据量核销,对于1.6万行的数据也能够做到在I秒左右完成整个预处理,大大缩短了处理时间,提高了处理速度。
[0048]根据本发明的上述实施例,响应于显示指令确定多个数据块中与终端的屏幕上的视图尺寸相匹配的待显示的部分数据块可以包括:确定数据表中显示指令所指示的显示起始位置;根据显示起始位置和视图尺寸确定数据表中待显示的记录项区域;将多个数据块中与记录项区域重叠的数据块作为待显示的部分数据块。
[0049]具体地,基于显示指令所指示的在数据表中的显示起始位置,以该显示起始位置为基准,基于视图尺寸获取数据表中待显示的记录项区域,该显示起始位置可以为待显示的记录项区域的起始记录项的位置,其中,记录项的位置可以用记录项在数据表中的行列位置标示,如记录项(I,I)标示该记录项为数据表中的第一行第一列的记录项。
[0050]在确定显示起始位置之后,获取视图的尺寸,基于该视图的尺寸确定数据表中的边界记录项或顶点记录项的位置,如确定该待显示的记录项区域的顶点记录项的位置为:(1,1)(该记录项的位置为上述的显示起始位置)、(8,1)、(1,5)以及(8,5),在确定记录项区域的边界或顶点记录项之后,可以确定待显示的记录项区域,在确定待显示的记录项区域之后,获取该待显示的记录项区域中各个记录项的位置,从数据表中获取与该记录项的位置重叠的数据块,可得到待显示的部分数据块。
[0051]如图3所示,数据表中至少包括6个数据块,分别为:数据块(0,0)、数据块(0,1)、数据块(0,2)、数据块(1,0)、数据块(1,1)以及数据块(1,2),通过显示指令获取的部分数据块可以为与视图尺寸匹配的四个数据块。
[0052]在一个可选的实施例中,显示指令为滑动指令,其中,确定数据表中显示指令所指示的显示起始位置可以包括:获取滑动指令所指示的在数据表中的滑动起始位置;根据滑动起始位置以及滑动指令所指示的滑动位移量来确定显示起始位置。
[0053]具体地,根据滑动起始位置以及滑动指令所指示的滑动位移量来确定显示起始位置包括:获取显示指令的滑动操作起点坐标和滑动操作终点坐标;计算滑动操作终点坐标和滑动操作起点坐标差值,得到滑动位移向量,其中,滑动位移量包括滑动位移向量;将滑动起始位置的坐标与滑动位移向量之和作为显示起始位置的坐标。
[0054]如上文所述,显示指令可以为滑动指令,该滑动指令用于拖动当前显示在屏幕的视图中的XLS文件,在接收到滑动指令之后,获取当前显示在终端的屏幕上的数据的起始记录项的位置,将该当前显示的起始记录项的位置作为滑动起始位置。然后获取该滑动指令的起始输入位置坐标(即上述实施例中的滑动操作起点坐标)和终止输入位置坐标(即上述实施例中的滑动操作终点坐标),计算这两个坐标对应的滑动位移向量,将该滑动位移向量叠加到滑动起始位置上,则可以确定显示起始位置,并基于视图尺寸确定待显示的部分数据块,读取并显示相关内容的数据。
[0055]在另一个可选的实施例中,响应于显示指令确定多个数据块中与终端的屏幕上的视图尺寸相匹配的待显示的部分数据块可以包括:获取显示指令所指示的数据块的索引信息;将多个数据块中与数据块的索引信息对应的数据块作为待显示的部分数据块。
[0056]用户可以通过终端的屏幕输入想要展示的数据块的索引信息,终端的处理器直接从存储空间的XLS文件上读取索引信息所指示的数据块,并直接将该索引信息对应的数据块确定为待显示的部分数据块。通过上述方案可以直接选中数据块。
[0057]可选地,部分数据块为N个数据块,其中,在终端的屏幕上显示读取到的数据之后,该方法还可以包括:接收通过终端的屏幕输入的切换指令;获取切换指令所指示的N个数据块中的一个目标数据块;读取目标数据块中与视图尺寸匹配的目标数据;将读取到的目标数据显示在终端的屏幕上。
[0058]在待显示的部分数据块为N个的情况下(图3示出的方案为4个),用户可以通过操作终端的屏幕输入切换指令,该切换指令中可以携带有位移向量,若该位移向量的值大于预设向量值,则确定该切换指令用于指示在终端的屏幕上显示该N个数据块中一个目标数据块的完整信息,获取该目标数据块的数据,将该目标数据块的数据显示在终端的屏幕上。
[0059]进一步可选地,若该目标数据块的数据覆盖的区域大于或远远小于视图尺寸,则可以对该目标数据块的数据在终端的屏幕上进行缩放显示,以提高用户体验。
[0060]在本发明的上述实施例中,部分数据块为N个数据块,其中,在终端的屏幕上显示读取到的数据可以包括:生成N个数据块中每个数据块的数据的初始显示图像;将生成的N个初始显示图像拼接得到拼接图像;若拼接图像的尺寸大于视图尺寸,按照视图尺寸对拼接图像进行裁剪,得到显示图像;若拼接图像的尺寸不大于视图尺寸,将拼接图像作为显示图像,在获取显示图像之后,将该显示图像显示在终端的屏幕上。
[0061]具体地,在部分数据块为N个数据块的情况下,可以分别生成N个数据块中各个数据块的数据的初始显示图像,还可以基于N个数据块的数据生成一个初始显示图像。具体地,可以从内存缓存中读取数据块中记录项的样式信息(该样式信息也可以为属性信息的一部分),基于样式信息绘制(或渲染)每个数据块的数据的初始显示图像。
[0062]在为每个数据块生成一个初始显示图像的情况下,在获取初始显示图像之后,将N个初始显示图像拼接得到拼接图像;若拼接图像的尺寸大于视图尺寸,按照视图尺寸对拼接图像进行裁剪,得到显示图像;若拼接图像的尺寸不大于视图尺寸,将拼接图像作为显示图像。另一种可选地,在得到拼接图像之后,若拼接图像的尺寸大于视图尺寸,或小于视图尺寸,可以在预设倍数范围内,对拼接图像进行缩放处理,得到显示图像,并将该显示图像显示在终端的屏幕上。
[0063]在上述实施例中,可以根据终端的屏幕中用于显示XLS文件的视图View尺寸和XLS的显示起始位置,计算出哪些数据块需要被显示(可以通过渲染的方式显示),如果数据块还没有被渲染则通知解析渲染线程生成该数据块的图像。
[0064]进一步地,对于每个即将渲染显示的数据块,首先根据该数据块(如数据切片)的定位信息找出)(LS中对应的数据块,然后解析读取其中的数据,并生成每个切片的初始显示图像;最后根据每个切片在终端的屏幕的视图View中的位置,拼接裁剪成一个用于手机屏幕渲染显示的图像。
[0065]根据本发明的上述实施例,结合XLS文档的存储结构特点,提出了一种全新的XLS文档打开阅读方案;避免了原有打开方案中的三个影响打开性能的环节,大大提升了打开速度、降低了对资源的消耗。具体地,本发明上述实施例中,结合XLS文档中数据分块化存储的特点,以XLS文档中原有的数据块为单位进行后续的处理,并且在前期避免不必要的对数据块内部数据的解析处理;根据XLS文档在屏幕中显示情况来驱动相应数据块的处理流程,采取实时解析+本地渲染的策略,可以快速打开文件。
[0066]下面结合图4详述本发明上述实施例,如图4所示,该实施例可以通过如下方案实现:
[0067]步骤S401:用户选择需要打开的XLS文档,开始打开阅读。
[0068]具体地,用户可以在终端的屏幕上输入阅读指令。
[0069]步骤S402:将XLS文件的属性信息加载到内存中作为缓存。
[0070]具体地,可以在接收到用户的阅读指令之后,将XLS文件的属性信息加载到内存中作为缓存,该缓存可以供后续解析时反复读取数据,避免了频繁进行磁盘I/O操作导致解析慢的问题。