具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
下面结合附图对本申请所述的网页中表格中数据复制或剪切的方法、装置进行详细的说明。图1是本申请一个实施方式提供的网页中表格中数据复制或剪切的方法的流程图。虽然本申请提供了如下述实施方式或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块结构。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施方式提供的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品执行时,可以按照实施方式或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
请参阅图1,本申请一个实施方式所提供的一种表格中数据复制或剪切的方法可以包括如下步骤。
步骤S10:所述表格中显示的第一数据被选中。
在本实施方式中,所述表格具体可以为基于HTML(Hyper Text Markup Language超文本标记语言)设计的网页中的表格,也可以为基于XSL(eXtensible StylesheetLanguage可扩展样式表语言)设计的EXCEL表格等,当然所述表格还可以为基于上述语言中的一种设计的其他表格样式,也可以为基于其他语言设计的表格样式,本申请在此并不作具体的限定。
一般的,所述表格为经过预先设置好的表格,其通过客户端向用户进行展示。具体的,每个表格可以由预设的行数和列数划分为多个单元格。其中,每个单元格可以对应显示有预设的数据。具体的,所述数据的形式可以为文字、图片、链接等等,本申请在此并不作具体的限定。此外,对于所述表格而言,一般具有横向标题、纵向标题中的至少一个,以对单元格中的数据进行注释。
在本实施方式中,所述第一数据可以为用户需要发送或者备份的主要数据,其对应显示在相应的单元格中。所述被选中的第一数据对应的单元格以下称为目标单元格。所述目标单元格的个数可以为一个也可以为多个,本申请在此并不作具体的限定。
在本实施方式中,用户可以通过与客户端之间可以进行交互,选中目标单元格显示的第一数据。所述客户端可以包括个人计算机(PC)、服务器计算机、移动通信终端、手持设备、个人数码助理(PDA)、平板电脑、可穿戴设备、企事业或公共自助服务终端等等。当然,客户端也可以为运行于上述通信设备中的软件,本申请在此并不作具体的限定。
步骤S12:接收用户对所述第一数据的复制命令或剪切命令。
在本实施方式中,所述复制命令可以为输入设备接收到的快捷键或组合快捷键。例如,对于Windows系统,所述复制命令对应的组合快捷键可以为CTRL+C。此外,所述复制命令可以为鼠标右键接收到的复制指令。当然,对于不同的操作系统而言,具体的复制命令对应的快捷键或组合快捷键可以不同,本申请在此并不作具体的限定。
在本实施方式中,所述剪切命令可以为输入设备接收到的快捷键或组合快捷键。例如,对于Windows系统,所述剪切命令对应的组合快捷键可以为CTRL+X。此外,所述剪切命令可以为鼠标右键接收到的剪切指令。当然,对于不同的操作系统而言,具体的剪切命令对应的快捷键或组合快捷键可以不同,本申请在此并不作具体的限定。
在本实施方式中,当用户通过输入设备向客户端针对所述显示的第一数据发出复制命令或剪切命令时,对应的,所述客户端可以接收到用户针对所述显示的第一数据的复制命令或剪切命令。
步骤S14:按照预设规则获取与所述第一数据对应的第二数据;其中,所述第二数据中包括所述第一数据。
在本实施方式中,所述第二数据可以为所述用户需要发送或者备份的完整数据。所述第二数据中可以包括所述第一数据,以及用于对所述第一数据进行注释的注释数据。一般的,所述注释数据可以为所述被选中的目标单元格对应的横向标题、纵向标题中的至少一个。
在本实施方式中,所述预设规则可以为针对所述复制命令或剪切命令的预设代码。例如,所述预设代码可以包括用于识别出所述复制命令或者剪切命令,并控制客户端对应的操作系统以获取与所述显示的第一数据对应的第二数据。相应的,所述按照预设规则获取与所述第一数据对应的第二数据可以包括:拦截用户输入的所述复制命令或剪切命令,并控制操作系统获取与所述目标单元格显示的第一数据相对应的第二数据。
具体的,在不同的场景下,所述预设代码的形式可以不同。例如,对于网页中的表格而言,其可以利用JavaScript编写,形成预设JavaScript代码。对于EXCEL表格而言,其可以针对复制命令或剪切命令进行录制宏,形成预设宏代码段。当然,所述预设的代码形式并不限于上述描述,所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
一般的,在未针对所述复制命令或剪切命令进行设定时,客户端对应的操作系统会自动调用针对处理所述复制命令或者剪切命令的代码,从而实现针对所述第一数据的相应复制或者剪切操作。而在本申请中通过所述预设的代码拦截了操作系统调用自带代码对所述第一数据进制复制或剪切的操作,并且能够基于所述复制命令或剪切命令获取与所述第一数据对应的第二数据,从而达到一次复制即可将所需的数据全部复制到位,大大节省了用户的操作步骤,提高了用户的操作体验。
在本实施方式中,当所述被选中的目标单元格为多个时,相应地,可以针对每个目标单元格分别进行获取第二数据的操作,从而获取到一个第二数据的集合。针对每个目标单元获取第二数据的步骤同上,本申请在此不再赘述。
步骤S16:将所述第二数据写入剪切板。
在本实施方式中,所述剪切板可以为一个数据的中转站,用于暂存数据,同时其也能够提供一个共享数据的平台。具体的,所述剪切板可以是操作系统设置的一个存储区域。例如,对于Windows操作系统而言,其可以通过按组合快捷键CRTL+V或右键粘贴将所述存储区域中的数据粘贴出来。对于剪切板中的数据而言,当有新的数据送到剪切板后,旧的数据将被覆盖,即剪切板用于保存当前的一份数据。
在本实施方式中,当将所述第二数据写入剪切板后,实现了所述第二数据可以被共享。当用户通过输入设备发出粘贴命令时,当前剪切板中的第二数据可以被粘贴出来,以进行发送或备份。
本申请实施方式中,通过针对复制命令或者剪切命令预先进行设定,当接收到用户的复制操作或者剪切操作命令时,能够拦截用户输入的所述复制命令或剪切命令,避免操作系统对所述第一数据进制复制或剪切的操作,并且能够基于所述复制命令或剪切命令获取与所述第一数据对应的第二数据,从而达到一次复制即可将所需的数据全部复制到位,大大节省了用户的操作步骤,减少用户从表格中提取数据的操作成本,提高了用户的操作体验。
在一个实施方式中,所述被选中的第一数据对应的单元格为目标单元格,所述按照预设规则获取与所述第一数据对应的第二数据可以包括:根据预设代码拦截操作系统对所述复制命令或剪切命令的处理,并控制所述操作系统获取与所述目标单元格显示的第一数据相对应的第二数据。
在本实施方式中,针对网页中的表格而言,所述按照预设规则获取与所述第一数据对应的第二数据可以包括:通过预设网页编程代码拦截操作系统对所述复制命令或剪切命令的处理,并控制操作系统获取与所述目标单元格显示的第一数据相对应的第二数据。
在本实施方式中,所述预设网页编程代码可以基于JavaScript语言进行编写。所述JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
在一个实施方式中,针对所述表格中的每个单元格可以设置有预定的数据格式,所述数据格式包括展示数据和与所述展示数据对应设置的隐藏数据;其中,所述目标单元格对应的展示数据为所述第一数据;当所述隐藏数据包括所述展示数据时,所述第二数据为所述目标单元格对应的隐藏数据;或者,当所述隐藏数据不包括所述展示数据时,所述第二数据为所述目标单元格对应的展示数据和隐藏数据的组合。
具体的,所述数据格式可以包括展示数据和与所述展示数据对应设置的隐藏数据。其中,所述目标单元格对应的展示数据可以为所述第一数据,或者说所述第一数据为展示数据的形式,其可以通过客户端明确地展示给用户。
当所述隐藏数据包括所述展示数据时,所述第二数据可以为所述目标单元格对应的隐藏数据。具体的,对于所述目标单元格而言,其为隐藏数据形式的第二数据包括所述第一数据,即所述第二数据包括:被注释的第一数据以及用于对所述第一数据进行注释的注释数据。
在一个具体的网页中的表格场景下,对于表1中数据而言,其对应有展示数据和隐藏数据。所述隐藏数据可以存放在与所述展示数据对应的预设的属性中。具体的,针对表1中的各个单元格的展示数据其对应的隐藏数据可以也为空。例如对于横向标题单元格的展示数据:“姓名”、“年龄”、“性别”;对于纵向标题单元格的“张三”、“李四”、“王五”而言,其对应的隐藏数据可以为空。对于非标题单元格的“19”、“20”、“21”、“男”、“女”、“男”而言,其对应的隐藏数据可以为纵向标题单元格的展示数据、横向标题单元格的展示数据、与其本身的组合。
例如,当被选中的单元格为第三行第二列时,对于第三行第二列这个目标单元格而言,对应的第一数据“20”为展示数据,所述展示数据对应的隐藏数据为“李四:年龄:20”。也就是说该目标单元格对应的第二数据为“李四:年龄:20”。
表1
姓名 |
年龄 |
性别 |
张三 |
19 |
男 |
李四 |
20 |
女 |
王五 |
21 |
男 |
当所述隐藏数据不包括所述展示数据时,所述第二数据可以为所述目标单元格对应的展示数据和隐藏数据的组合。具体的,对于所述目标单元格而言,其需要复制到或者剪切到的第二数据可以包括为显示数据形式的第一数据,以及用于注释所述第一数据的隐藏数据的组合。
在一个具体的网页中的表格场景下,对于表1中数据而言,其对应有展示数据和隐藏数据。所述隐藏数据可以存放在与所述展示数据对应的预设的属性中。具体的,针对表1中的各个单元格的展示数据其对应的隐藏数据可以也为空。例如,对于横向标题单元格的展示数据:“姓名”、“年龄”、“性别”;对于纵向标题单元格的“张三”、“李四”、“王五”而言,其对应的隐藏数据可以为空。对于非标题单元格的“19”、“20”、“21”、“男”、“女”、“男”而言,其对应的隐藏数据可以为纵向标题单元格的展示数据、横向标题单元格的展示数据。所述第二数据为所述隐藏数据与所述展示数据的组合,即所述纵向标题单元格的展示数据、横向标题单元格的展示数据与所述展示数据的组合。例如,当被选中的单元格为第三行第二列时,对于第三行第二列这个目标单元格而言,对应的第一数据“20”为展示数据,所述展示数据对应的隐藏数据为“李四:年龄:”。相应的,该目标单元格对应的第二数据为所述隐藏数据与所述展示数据的组合:“李四:年龄:20”。
此外,针对EXCEL表格而言,所述按照预设规则获取与所述第一数据对应的第二数据也可以包括:通过预设宏代码拦截操作系统对所述复制命令或剪切命令的处理,并控制操作系统获取与所述目标单元格显示的第一数据相对应的第二数据。
具体的,所述EXCEL中的编程语言与所述网页中的编程语言有所同,但其实现的具体方式,如数据格式的设定方式等都可以参照上述网页中的表格的场景,本申请在此不再赘述。
请参阅图2,在一个实施方式中,所述获取与所述第一数据对应的第二数据的步骤可以包括:
步骤S141:获取与所述目标单元格对应的横向标题单元格、纵向标题单元格中的至少一个的数据;
步骤S142:将所述第一数据与获取的横向标题单元格、纵向标题单元格中的至少一个的数据组合形成所述第二数据。
对于表格中的每个单元格其可以对应有行列坐标以表示其所在的位置。所述行列坐标具体可以以每个单元格对应的行数表示其行坐标,对应的列数表示其列坐标。其中,对于横向标题单元格而言,其对应的行坐标可以始终为预设的初始值,例如可以为1;其对应的列坐标,自左向右逐渐递增,例如可以以1为初始值,以步长为1的增量逐渐递增。以选中的某一个目标单元格第三行第二列为例,其对应的行列坐标可以为(3,2)。
在本实施方式中,所述横向标题单元格的行号与所述目标单元行号相同,列号为第一列;所述纵向标题单元格的行号为第一行,列号与所述目标单元格的列号相同。基于上述行号列号的设定,可以确定所述目标单元格对应的横向标题单元格、纵向标题单元格,从而获取所述横向标题单元格、纵向标题单元格内的数据。
在本实施方式中,对于EXCEL表格而言,其可以只有横向标题,也可以只有纵向标题,也可以横向标题、纵向标题都有或者都没有,本申请在此并不作具体的限定。当EXCEL表格中横向标题、纵向标题都有时,其可以将获取到的横向标题单元格、纵向标题单元格内的数据与所述第一数据进行组合,形成所述第二数据。当EXCEL表格中只有横向标题或者纵向标题时,其可以将获取到的横向标题单元格或纵向标题单元格内的数据与所述第一数据进行组合,形成所述第二数据。若EXCEL表格中没有横向标题或者纵向标题时,所述第二数据即为所述第一数据。
在一个具体的应用场景下,对于表1中的数据而言,例如选中的目标单元格为第三行第二列,其对应的第一数据为“20”。当所述客户端接收到所述用户对所述第一数据的复制命令或剪切命令时,调用所述预设的宏代码,对操作系统中默认的复制命令或剪切命令对应的预定操作进行拦截,并根据预设的宏代码获取与所述第一数据“20”对应的横向标题单元格内的数据“李四”、纵向标题单元格内的数据“年龄”,接着将第一数据“20”与获取的横向标题单元格内的数据“李四”、纵向标题单元格内的数据“年龄”组合形成所述第二数据:“李四:年龄:20”。
在一个实施方式中,所述方法还可以包括:判断所述第一行、第一列对应的单元格的数据格式是否与所述目标单元格的数据格式相同;若不相同,则相应地执行获取与所述目标单元格对应的横向标题、纵向标题单元格内的数据的步骤。
在本实施方式中,针对表格中只设置有横向标题、纵向标题中的一个或者两个都不设置的情况下,基于判断所述第一行、第一列对应的单元格的数据格式是否与所述目标单元格的数据格式相同,可以确定是否存在相应的横向标题或纵向标题,进而可以确定是否需要对相应的单元格进行获取数据的步骤。具体的,可以将所述第一行、第一列对应的单元格的数据格式与非标题单元格的数据格式设置的不同。当判断出所述第一行、第一列的数据格式与目标单元格的数据格式不同时,表示所述第一行、第一列为对应的横向标题行、纵向标题行,需要执行获取与所述目标单元格对应的横向标题、纵向标题单元格内的数据的步骤,以对所述目标单元格中的数据进行注释。当判断出所述第一行、第一列中至少一个的数据格式与所述目标单元格的数据格式相同时,表示该行或者列为非标题行或者列,此时无需执行相应的获取数据的步骤。具体的,请参阅表2。
表2
表2中,设置有横向标题,但没有设置纵向标题。对于横向标题单元格而言,其对应的数据格式可以为加粗、居中对齐;对于非标题单元格而言,其对应的数据格式可以为不加粗、靠左对齐。当将所述第一列的单元格内的数据格式与所述目标单元格的数据格式进行对比时,可以判断出:除了第一列第一行的数据格式与所述目标单元格的数据格式不同外,其他都相同,此时表明:所述表格只有横向标题,没有纵向标题。相应的,在执行获取数据的步骤时,可以针对性地对与所述目标单元格对应的纵向标题单元格的数据进行获取,而不用再获取横向标题单元格的数据。
在本实施方式中,所述数据格式可以包括下述中的至少一种:字体、对齐方式、底色设置方式等等。例如可以将标题单元格与非标题单元格设置为不同的字体;或者不同的字体加不同的对齐方式;或者针对标题单元格设置有底色,而非标题单元格没有底色等等。当然,所述数据格式并不限于上述描述,所属领域技术人员在本申请的技术精髓启示下,还可能做出其他的变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
此外,对于所述网页中的表格而言,所述获取与所述第一数据对应的第二数据的步骤也可以包括:获取与所述目标单元格对应的横向标题单元格、纵向标题单元格中的至少一个的数据;将所述第一数据与获取的横向标题单元格、纵向标题单元格中的至少一个的数据组合形成所述第二数据。
具体的,所述网页中的表格的编程语言与所述EXCEL中的有所不同,但其实现的具体方式可以参照所述EXCEL中的表格实现方式,本申请在此不再赘述。
请参阅图3,在一个实施方式中,所述方法还可以包括如下步骤。
步骤S18:接收用户对所述第二数据的粘贴命令;
步骤S20:根据所述粘贴命令,将所述第二数据以预定的格式进行显示。
当所述第二数据录入剪切板后,一般用户需要对该数据在预定的位置进行粘贴,以便将该数据进行发送或备份。
在本实施方式中,所述方法可以包括接收用户对所述第二数据的粘贴命令。所述粘贴命令可以为输入设备接收到的快捷键或组合快捷键。例如,对于Windows系统,所述粘贴命令对应的组合快捷键可以为CTRL+V。此外,所述粘贴命令可以为鼠标右键接收到的粘贴指令。当然,对于不同的操作系统而言,具体的粘贴命令对应的快捷键或组合快捷键可以不同,本申请在此并不作具体的限定。
在本实施方式中,当接收到所述用户的粘贴命令后,可以根据所述粘贴命令,将所述第二数据以预定的格式进行显示。其中,所述预定的格式可以为所述第二数据包括的第一数据与注释数据的组合方式。例如,所述预设的格式可为:“注释数据:第一数据”的形式。其中所述注释数据若包含横向标题、纵向标题时,所述预设的格式可为:对应的“横向标题单元格数据:纵向标题单元格数据:第一数据”。当然,所述预定的格式可以根据具体的需要进行设置,本申请在此并不作具体的限定。
在本实施方式中,通过针对复制命令或者剪切命令预先进行设定,当接收到用户的复制操作或者剪切操作命令时,能够拦截用户输入的所述复制或剪切的命令,避免操作系统对所述第一数据进制复制或剪切的操作,并且能够基于所述复制命令或剪切命令获取与所述第一数据对应的第二数据,从而达到一次复制即可将所需的数据全部复制到位,进一步的,当所述复制操作将需要发送或备份的数据一次复制到位后,相应的,所述粘贴操作也只需要一步即可将所述复制到的数据粘贴到预定的位置,大大节省了用户从表格中提取数据的操作步骤,提高了用户的操作体验。
基于上述实施方式所述的表格中数据复制或剪切的方法,本申请还提供一种表格中数据复制或剪切的装置。
请参阅图4,所述表格中数据复制或剪切的装置可以包括:识别模块10、接收模块12、数据获取模块14、录入模块16。
所述识别模块10,可以用于识别被选中的所述表格中显示的第一数据;
所述接收模块12,可以用于接收用户对所述第一数据的复制命令或剪切命令;
所述数据获取模块14,可以用于按照预设规则获取与所述第一数据对应的第二数据;其中,所述第二数据中包括所述第一数据;
所述录入模块16,可以用于将所述第二数据写入剪切板。
上述实施方式公开的表格中数据复制或剪切的装置与本申请表格中数据复制或剪切的方法实施方式相对应,可以实现本申请的表格中数据复制或剪切的方法实施方式并达到方法实施方式的技术效果。
基于上述实施方式所述的表格中数据复制或剪切的方法,本申请还提供一种电子设备。
请参阅图5,本申请实施方式中提供的一种电子设备可以包括:至少一个处理器13和至少一个存储器11,
所述至少一个存储器11中存储有用于根据被选中的表格中显示的第一数据获取与所述第一数据对应的第二数据的预设规则;
所述处理器13用于识别被选中的表格中显示的第一数据;接收用户对所述第一数据的复制命令或剪切命令;按照所述预设规则获取与所述第一数据对应的第二数据;其中,所述第二数据中包括所述第一数据;将所述第二数据写入剪切板。
上述实施方式公开的电子设备与本申请表格中数据复制或剪切的方法实施方式相对应,可以实现本申请的表格中数据复制或剪切的方法实施方式并达到方法实施方式的技术效果。
本申请中各个实施方式所涉及的上述描述仅是本申请中的一些实施方式中的应用,在某些标准、方法的基础上略加修改后的实施方式也可以实行上述本申请各实施方式的方案。当然,在符合本申请上述各实施方式的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施方式或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施方式中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施方式或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施方式阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以可读程序嵌入控制器方式实现,所述控制器按具体要求实现例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式采用递进的方式描述,各个实施方式之间相同或相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
在本申请文件中,介绍了本申请的多个实施方式,所属领域技术人员可以理解得出,本申请中的实施方式之间可以互相组合。而且,所属领域技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。