CN102103587B - 一种表格转换的方法和装置 - Google Patents

一种表格转换的方法和装置 Download PDF

Info

Publication number
CN102103587B
CN102103587B CN200910242831.9A CN200910242831A CN102103587B CN 102103587 B CN102103587 B CN 102103587B CN 200910242831 A CN200910242831 A CN 200910242831A CN 102103587 B CN102103587 B CN 102103587B
Authority
CN
China
Prior art keywords
information
cell
logic tree
row
positional information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910242831.9A
Other languages
English (en)
Other versions
CN102103587A (zh
Inventor
缪萍
闫国龙
梁鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CN200910242831.9A priority Critical patent/CN102103587B/zh
Publication of CN102103587A publication Critical patent/CN102103587A/zh
Application granted granted Critical
Publication of CN102103587B publication Critical patent/CN102103587B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

本发明提供一种表格转换的方法,包括以下步骤:根据表格的编码数据生成包含所有单元格的位置信息、长度信息和内容信息的逻辑树;根据所生成的逻辑树中的信息统计表格的行信息和列信息,并遍历逻辑树,按照目标表格编码方式合并填充各单元格,从而生成目标表格编码数据。相应地,提供一种表格转换的装置,包括输入单元、逻辑树生成单元、转换单元和输出单元。通过本发明方法,可实现不同格式表格之间的转换,尤其是将不可被其它软件编辑的表格导出为可编辑表格,从而提高了表格操作的易用性和灵活性。

Description

一种表格转换的方法和装置
技术领域
本发明涉及电子文档数据处理领域,具体涉及一种不同格式表格的相互转换的方法和装置。
背景技术
随着IT应用的普及,许多企业和个人的信息数据都以电子文档的形式保存,尤其是以表格的形式保存许多统计数据或其它有规律的数据。但是,在目前的许多编辑软件中,表格编码方式互相不兼容,从而导致不能保留原有的表格样式,甚至不能在另外的编辑软件中对表格内容进行再编辑和修改。
比如,对于作为目前出版社排版的主要结果的方正书版文件,只允许在书版软件中对数据表格进行修改和编辑,而无法导出可编辑的通用表格形式。具体地讲,在现有技术中,方正书版表格只能以图片的方式进行引用,从而导致不能在其它编辑软件中对表格的格式和文字内容进行再加工。若要修改表格内容则需要返回到方正书版软件进行修改,修改完成后再重新转换成图片插入到其它软件中。也就是说,其它软件只能引用表格内容,而不可以修改,这种方式显然费时又费力,用户不能随意地修改表格内容,操作的易用性和灵活性差。
发明内容
为了解决现有技术中的上述问题,本发明提供一种表格转换的方法和装置,以实现不同格式表格之间的相互转换,提高表格操作的易用性和灵活性。
为了实现以上目的,本发明提供的表格转换的方法包括以下步骤:(1)根据表格的编码数据生成包含所有单元格的位置信息、长度信息和内容信息的逻辑树;(2)根据所生成的逻辑树中的信息生成目标表格编码数据。
其中,步骤(1)包括以下步骤:遍历表格的编码数据,计算出每个单元格的位置信息和长度信息;按照每个单元格的位置信息将单元格的位置信息、长度信息和内容信息添加到逻辑树的相应节点中。步骤(2)包括以下步骤:根据逻辑树中的单元格的位置信息和长度信息统计表格的行信息和列信息;遍历逻辑树,按照目标表格编码方式合并填充各单元格,生成目标表格编码。
相应地,提供一种表格转换的装置,包括输入单元、逻辑树生成单元、转换单元和输出单元,其中,逻辑树生成单元和转换单元的操作与上述方法中相应步骤相同。
本发明根据原表格编码数据生成包含单元格信息的逻辑树,并根据该逻辑树中所包含的信息计算表格的行信息和列信息,然后遍历逻辑树,按照目标表格编码方式合并填充各单元格,从而生成目标表格编码。通过这种方法,可实现不同格式表格之间的相互转换,尤其是将不可被其它软件编辑的表格导出为可编辑表格,极大地扩展了表格的再利用。
附图说明
图1是根据本发明的表格转换方法的流程图;
图2是行列逻辑树的结构图;
图3是根据本发明实施例的表格转换方法的详细流程图;
图4是根据本发明的表格转换装置的框图。
具体实施方式
以下,将结合附图和实施例对本发明进行详细描述。
图1是根据本发明的表格转换方法的流程图,参照图1,该方法包括以下步骤:
步骤S1、根据表格的编码数据生成包含所有单元格的位置信息、长度信息和内容信息的逻辑树,具体地讲,首先遍历表格的编码数据,计算出每个单元格的位置信息和长度信息,然后按照每个单元格的位置信息将单元格的位置信息、长度信息和内容信息添加到逻辑树的相应节点中;
步骤S2、根据所生成的逻辑树中的单元格信息生成目标编码数据,具体地讲,根据逻辑树中的单元格的位置信息和长度信息统计表格的行信息和列信息(包括表格的总行数和总列数以及各行各列的长度信息),然后遍历逻辑树,按照目标表格编码方式合并填充各单元格,生成目标表格编码,从而实现表格的编码数据转换,这里,假设目标编码方式是事先已知的或者是开放的。
以下,为了更清楚地说明本发明方法,将参照图2和图3以从方正书版表格导出可编辑表格作为实施例进行说明。
如前所述,方正书版表格是一种不可被其它编辑软件编辑的表格,只能以图片插入的方式进行引用。鉴于目前大多数企业和个人都使用微软office软件的情况,而且,微软office 2007采用格式开放的OOXML文档格式规范(详见微软官方网站),所以,以下将描述根据本发明方法将方正书版表格转换为office 2007表格的具体步骤。
表1是待转换的方正书版表格。在该表格中,最小单元格的高度,即,每行的行高为1又1/2个字高,表示为1*1/2,最小宽度为1个字宽。
表1
Figure G2009102428319D00041
以下是表1所示表格的书版编码数据:
〖BG(!〗
     〖BHDG13*2,K8,K20〗
     〖ZB(〗
          〖BHDG1*2,K4。2〗文件名〖〗页数
          〖BHDG1*2〗文件1〖〗1
          〖BH〗文件2〖〗2
          〖BH〗文件3〖〗3
          〖BH〗文件4〖〗4
          〖BH〗文件5〖〗5
          〖BH〗文件6〖〗6
          〖BH〗文件7〖〗7
          〖BH〗文件8〖〗8
     〖ZB)〗
     〖〗
     〖ZB(〗
          〖BHDG9,K10,K10〗方正格式
          〖〗
          〖ZB(〗
               〖BHDG1*2,K10〗S1
Figure G2009102428319D00042
               〖BH〗S72
Figure G2009102428319D00043
        〖BH〗PS2
Figure G2009102428319D00051
        〖BH〗PS
Figure G2009102428319D00052
        〖BH〗EPS
Figure G2009102428319D00053
        〖BH〗PDF
Figure G2009102428319D00054
    〖ZB)〗
    〖BHDG1*2,K20ZQ〗WORD文件DOC
    〖BH〗PAGERMAKER文件
Figure G2009102428319D00056
    〖BH〗AUTO CAD文件
Figure G2009102428319D00057
    〖ZB)〗
〖BG)〗
其中,BG表示表格,K表示栏,K8表示栏宽为8个字宽,ZB表示子表,BH表示表行,D表示顶线线型,包括反线(F)、双线(S)、无线(W)、正线(Z)、点线(D)、曲线(Q),省略该选项则表示用正线,G表示高度,BHDG1*2表示本行顶线线型为正线并且行高为1*1/2,ZQ表示左对齐,K20ZQ表示栏宽20并且左对齐。根据这些编码数据,可获知表1所示表格的每个单元格的位置信息、长度信息和内容信息。此外,从这些编码数据可看出,书版表格编码将表1所示表格总体上分为了两个子表,即,单元格“文件名”所在的左侧子表和单元格“方正格式”所在的右侧子表,而在右侧子表中又包括一个小子表,即,单元格“S2()”至单元格“PDF()”又构成一个小子表。
在本实施例中,首先,解析以上书版表格编码,创建一个以表行和栏为节点的逻辑树(以下简称为行栏逻辑树)。如图2所示,行栏逻辑树包括多个表行TableRow节点,每个表行TableRow节点中包括该表行中所包括的所有单元格TableCell子节点,也称为栏节点,其中,TableRow节点的个数为表格的总行数,每个单元格TableCell子节点中记录该单元格的位置信息、长度信息和内容信息,其中,每个单元格的位置信息是以该单元格的左顶点(即,左侧栏的上顶点)相对于表格左上顶点的距离来表示,记为(表左距,表上距),每个单元格的长度信息记为(高,宽),均以字为单位。
在解析书版表格编码和创建行栏逻辑树的过程中,首先在步骤S20中,从头到尾遍历表格编码数据,计算出表格中每个单元格的位置信息和长度信息,然后在步骤S21中按照单元格的位置信息将这些单元格的位置信息、长度信息和内容信息分别加入逻辑树中相应的栏节点中。
具体地讲,首先遍历到左侧子表的第一行编码“〖BHDG1*2,K4。2〗文件名〖〗页数”,从这行编码可知,在该子表中第一表行中包括两个单元格“文件名”和“页数”,行高1*1/2,两栏宽都为4,所以其位置信息分别为(0,0)和(4,0),长度信息分别为(1*1/2,4)和(1*1/2,4)。然后,依次遍历该子表表行。接着,遍历到右侧子表,第一行编码“〖BHDG9,K10,K10〗方正格式”,从这行编码可知,单元格“方正格式”的位置信息为(8,0),长度信息为(9,10),属于第一表行。接着,遍历右侧子表中的小子表。该小子表的第一行编码“〖BHDG1*2,K10〗S1”表示该单元格的位置信息为(18,0),长度信息为(1*1/2,10),属于第一表行。小子表遍历完之后,再继续右侧子表的其余单元格编码。。如此,可获得下表2所示的所有单元格的左顶点的位置信息和长度信息。
表2
其中,第一行第1个单元格位置信息为(0,0),表示该单元格左顶点距离表格左顶点的表左距为0个字宽,表上距为0个字宽,长度信息为(1*1/2,4),表示该单元格高度为1又1/2个字高,宽度为4个字宽;第一行第三个单元格位置信息为(8,0),表示该单元格的表左距为8个字宽,表上距为0个字高,长度信息为(9,10),表示该单元格高度为9个字高,宽度为10个字宽,其中,由于该表格每行行高为1又1/2个字高,所以该单元格共占6个单元格高度。
遍历书版表格编码获取所有单元格的位置信息和长度信息之后,将表2中所示的这些信息分别加入逻辑树中相应的栏节点中。以下是所建立的逻辑树的片段。
LogicTable
   TableRow
      TableCell-文件名(0,0),(1*1/2,4)
      TableCell-页数(4,0),(1*1/2,4)
      TableCell-方正格式(8,0),(9,10)
      TableCell-S2(28,0),(1*1/2,10)
   TableRow
      TableCell-文件1(0,1*1/2),(1*1/2,4)
      TableCell-1(4,1*1/2),(1*1/2,4)
      TableCell-S72(28,1*1/2),(1*1/2,10)
从以上逻辑树片段可看出,本实施例所建立的逻辑树是一个打散的方正书版表格行栏树。
接着,在根据逻辑树中所包含的单元格信息生成office表格编码的过程中,首先在步骤S22中统计表格的行信息和列信息,包括表格的总行数和总列数、各行各列的位置以及行间和列间的宽度。具体地讲,依次遍历逻辑树,统计有多少个不同的表上距和表左距,据此确定表格的总行数和总列数、各行各列的位置以及行间和列间的宽度。还可以根据逻辑树中TableRow节点的个数来确定表格的总行数。从以上逻辑树和表2可看出,表上距不同的点总共有9个,所以表格总行数为9行,各行位置分别为0,1*1/2,3,4*1/2,6,7*1/2,9,10*1/2,12,各行之间的宽度均为1*1/2;表左距不同的点总共有4个,所以表格总行数为4列,各列位置分别为0,4,8,18,各列宽度分别为4,4,10,10。
计算出表格的总行数和总列数之后,在步骤S23中,遍历逻辑树,根据TableCell节点中记录的位置信息和长度信息,按照目标表格编码方式合并填充各单元格。具体地讲,逐个遍历逻辑树中TableCell节点,对于不需要跨越多行和多列的单元格,直接按照目标表格编码方式进行编码,对于需要跨越多行和多列的单元格,按照TableCell节点中记录的位置信息和长度信息,计算出该单元格所跨越的行数和列数,然后按照目标表格编码方式合并行或列,并填充数据。比如,遍历到逻辑树中第1行第3列的单元格“方正格式”,根据其位置信息和长度信息可知其表上距为0,行高为9个字高,由于每行行高为1*1/2个字高,所以该单元格需从第1行合并6行。继续遍历,当遍历到第7行第3列的单元格“WORD文件DOC”时,根据其位置信息和长度信息可知其表左距为8个字高,其宽度为20个字宽,再根据统计的列信息,可知该单元格从第3列合并第4列。下表3为单元格拆分之后的结果。
表3
Figure G2009102428319D00081
最后,按照office表格编码方式合并填充各单元格,从而生成office表格编码,如下所示。
<?xml version=″1.0″encoding=″UTF-8″standalone=″yes″?>
<w:document xmlns:ve=″http://schemas.openxmlformats.org/markup-compatibility/2006″
xmlns:o=″urn:schemas-microsoft-com:office:office″
xmlns:r=″http://schemas.openxmlformats.org/officeDocument/2006/relationships″
xmlns:m=″http://schemas.openxmlformats.org/officeDocument/2006/math″
xmlns:v=″urn:schemas-microsoft-com:vml″
xmlns:wp=″http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing″
xmlns:w10=″urn:schemas-microsoft-com:office:word″
xmlns:w=″http://schemas.openxmlformats.org/wordprocessingml/2006/main″
xmlns:wne=″http://schemas.microsoft.com/office/word/2006/wordml″>
    <w:body>
       <w:tbl>
          <w:tblGrid>
             <w:gridCol w:w=″1242″/>
                  <w:gridCol w:w=″1418″/>
                  <w:gridCol w:w=″2835″/>
                  <w:gridCol w:w=″2126″/>
              </w:tblGrid>
              <w:tr w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidTr=″00154F22″>
                 <w:tc>
                    <w:tcPr>
                       <w:tcW w:w=″1242″w:type=″dxa″/>
                       <w:vAlign w:val=″bottom″/>
                    </w:tcPr>
                    <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                       <w:r w:rsidRPr=″00545A18″>
                          <w:t>文件名</w:t>
                       </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″1418″w:type=″dxa″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>页数</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″2835″w:type=″dxa″/>
                      <w:vMerge w:val=″restart″/>//开始进行行合并
                      <w:vAlign w:val=″center″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>方正格式</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″2126″w:type=″dxa″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>S2()</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
             </w:tr>
             <w:tr w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidTr=″00154F22″>
                <w:trPr>
                   <w:jc w:val=″center″/>
                </w:trPr>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″1242″w:type=″dxa″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>文件1</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″1418″w:type=″dxa″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>1</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″2835″w:type=″dxa″/>
                      <w:vMerge/>//单元格向上合并,总共合并6行
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″/>
               </w:tc>
               <w:tc>
                  <w:tcPr>
                     <w:tcW w:w=″2126″w:type=″dxa″/>
                     <w:vAlign w:val=″bottom″/>
                  </w:tcPr>
                  <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                     <w:r w:rsidRPr=″00545A18″>
                        <w:t>S72()</w:t>
                     </w:r>
                  </w:p>
               </w:tc>
            </w:tr>
            <w:tr w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidTr=″00154F22″>
               <w:trPr>
                  <w:jc w:val=″center″/>
               </w:trPr>
               <w:tc>
                  <w:tcPr>
                     <w:tcW w:w=″1242″w:type=″dxa″/>
                     <w:vAlign w:val=″bottom″/>
                  </w:tcPr>
                  <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                     <w:rw:rsidRPr=″00545A18″>
                         <w:t>文件6</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″1418″w:type=″dxa″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:pw:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>6</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″4961″w:type=″dxa″/>
                      <w:gridSpan w:val=″2″/>//合并两列
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>WORD文件DOC()</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
             </w:tr>
                <w:tc>
                   <w:tcPr>
                      <w:tcW w:w=″4961″w:type=″dxa″/>
                      <w:gridSpan w:val=″2″/>
                      <w:vAlign w:val=″bottom″/>
                   </w:tcPr>
                   <w:p w:rsidR=″00484350″w:rsidRPr=″00545A18″w:rsidRDefault=″00484350″
w:rsidP=″00545A18″>
                      <w:r w:rsidRPr=″00545A18″>
                         <w:t>AUTO CAD文件()</w:t>
                      </w:r>
                   </w:p>
                </w:tc>
             </w:tr>
          </w:tbl>
          <w:p w:rsidR=″00B305C1″w:rsidRPr=″00484350″w:rsidRDefault=″00B305C1″/>
          <w:sectPr w:rsidR=″00B305C1″w:rsidRPr=″00484350″w:rsidSect=″00B305C1″>
             <w:pgSz w:w=″11906″w:h=″16838″/>
             <w:pgMar w:top=″1440″w:right=″1800″w:bottom=″1440″w:left=″1800″w:header=″851″
w:footer=″992″w:gutter=″0″/>
             <w:cols w:space=″425″/>
           <w:docGrid w:type=″lines″w:linePitch=″312″/>
        </w:sectPr>
     </w:body>
</w:document>
其中,office表格编码方式可参见MSDN(Microsoft DevelopperNetwork)。
从以上实施例可看出,本发明首先根据原表格编码建立包含单元格的位置信息、长度信息和内容信息的行列逻辑树,并根据逻辑树统计表格的行信息和列信息,然后遍历逻辑树,根据单元格的位置信息和长度信息,按照office表格编码方式合并填充各单元格,从而生成可编辑的office表格。通过这个实施例,最终生成的可编辑表格实现多渠道发布,生成的表格结构和内容可以进行再次加工,实现了书版表格数据的可重复利用。
应该理解,本发明并不限于所公开的具体实施例。比如,本发明所述逻辑树并不限于上述行列逻辑树,任何包含单元格的位置信息、长度信息和内容信息的逻辑树结构都应包括在本发明的保护范围内。此外,本发明可应用于任意已知格式表格之间的相互转换,比如,在知道书版表格编码方式的情况下,也可通过本发明方法将office表格转换为书版表格。
相应地,本发明提供一种表格转换装置。如图4所示,该装置包括:输入单元10,将原表格编码数据输入到逻辑树生成单元20;逻辑树生成单元20,将输入的原表格编码数据生成包含单元格的位置信息、长度信息和内容信息的逻辑树,并将该逻辑树发送给转换单元30;转换单元30,根据逻辑树中所包含的信息生成目标表格编码数据,并将目标表格编码数据发送给输出单元40;输出单元40,应用目标编辑软件将目标表格编码数据生成最终的表格呈现给用户。其中,逻辑树生成单元20和转换单元30的操作与以上方法中相应步骤相同,因此,省略其描述。
以上参考实施例描述了本发明。但是,本领域的技术人员应该理解,本发明不限于所公开的实施例,在不脱离本发明的基本原理的情况下,任何类似的修改、替换或变形都应包括在本发明的保护范围内。

Claims (4)

1.一种表格转换的方法,包括以下步骤:
(1)根据表格的编码数据生成包含所有单元格的位置信息、长度信息和内容信息的逻辑树;其包括:
遍历表格的编码数据,计算出每个单元格的位置信息和长度信息;
按照每个单元格的位置信息将单元格的位置信息、长度信息和内容信息添加到逻辑树的相应节点中,具体为:创建以表行和栏为节点的逻辑树即行栏逻辑树,行栏逻辑树包括多个表行节点,其中表行节点中包括该表行中所包括的所有单元格子节点,每个单元格子节点中记录该单元格的位置信息、长度信息和内容信息,所述长度信息包括单元格的高与宽;
(2)根据所生成的逻辑树中的信息生成目标表格编码数据;其包括:
根据逻辑树中的单元格的位置信息和长度信息统计表格的行信息和列信息;
遍历逻辑树,按照目标表格编码方式合并填充各单元格,生成目标表格编码,具体为:逐个遍历逻辑树中单元格子节点,对于不需要跨越多行和多列的单元格,直接按照目标表格编码方式进行编码,对于需要跨越多行和多列的单元格,按照单元格子节点中记录的位置信息和长度信息,计算出该单元格所跨越的行数和列数,然后按照目标表格编码方式合并行或列,并填充数据。
2.根据权利要求1所述的方法,其特征在于,所述表格的行信息和列信息包括表格的总行数和总列数、各行各列的位置和宽度。
3.一种表格转换的装置,包括输入单元和输出单元,输入单元输入原表格编码数据,输出单元应用目标编辑软件将目标表格编码数据生成最终的表格呈现给用户,其特征在于,该装置还包括:
逻辑树生成单元,将输入的原表格编码数据生成包含单元格的位置信息、长度信息和内容信息的逻辑树,并将该逻辑树发送给转换单元;该逻辑树生成单元执行以下操作:遍历表格的编码数据,计算出每个单元格的位置信息和长度信息;按照每个单元格的位置信息将单元格的位置信息、长度信息和内容信息添加到逻辑树的相应节点中,具体为:创建以表行和栏为节点的逻辑树即行栏逻辑树,行栏逻辑树包括多个表行节点,其中表行节点中包括该表行中所包括的所有单元格子节点,每个单元格子节点中记录该单元格的位置信息、长度信息和内容信息,所述长度信息包括单元格的高与宽;
转换单元,根据逻辑树中所包含的信息生成目标表格编码数据,并将目标表格编码数据发送给输出单元;转换单元具体执行以下操作:根据逻辑树中的单元格的位置信息和长度信息统计表格的行信息和列信息;遍历逻辑树,按照目标表格编码方式合并填充各单元格,生成目标表格编码,具体为:逐个遍历逻辑树中单元格子节点,对于不需要跨越多行和多列的单元格,直接按照目标表格编码方式进行编码,对于需要跨越多行和多列的单元格,按照单元格子节点中记录的位置信息和长度信息,计算出该单元格所跨越的行数和列数,然后按照目标表格编码方式合并行或列,并填充数据。
4.根据权利要求3所述的装置,其特征在于,所述表格的行信息和列信息包括表格的总行数和总列数、各行各列的位置和宽度。
CN200910242831.9A 2009-12-17 2009-12-17 一种表格转换的方法和装置 Expired - Fee Related CN102103587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910242831.9A CN102103587B (zh) 2009-12-17 2009-12-17 一种表格转换的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910242831.9A CN102103587B (zh) 2009-12-17 2009-12-17 一种表格转换的方法和装置

Publications (2)

Publication Number Publication Date
CN102103587A CN102103587A (zh) 2011-06-22
CN102103587B true CN102103587B (zh) 2014-06-04

Family

ID=44156365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910242831.9A Expired - Fee Related CN102103587B (zh) 2009-12-17 2009-12-17 一种表格转换的方法和装置

Country Status (1)

Country Link
CN (1) CN102103587B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760352B (zh) * 2016-02-02 2018-07-20 锐达互动科技股份有限公司 导入选中的Excel表格行列排列方式到白板软件中的方法
CN105760353B (zh) * 2016-02-02 2018-08-07 锐达互动科技股份有限公司 在白板软件中导入Excel表格且不改变单元格文本格式的方法
CN106844324B (zh) * 2017-02-22 2020-01-10 浪潮通用软件有限公司 一种变动列数据导出为Excel格式的方法
CN107943956A (zh) * 2017-11-24 2018-04-20 北京金堤科技有限公司 页面转换方法、装置和页面转换设备
CN109829147B (zh) * 2019-01-31 2023-06-30 恒生电子股份有限公司 报表导出方法及装置
CN110377885B (zh) * 2019-06-14 2023-09-26 北京百度网讯科技有限公司 转换pdf文件的方法、装置、设备和计算机存储介质
CN110287379B (zh) * 2019-06-17 2022-12-06 中电科大数据研究院有限公司 一种基于逻辑树的表格拆分与数据提取方法
CN110705213B (zh) * 2019-08-23 2023-11-14 平安科技(深圳)有限公司 Pdf表格提取方法、装置、终端及计算机可读存储介质
US11250206B2 (en) 2019-09-20 2022-02-15 Microsoft Technology Licensing, Llc Conversion of forms to action cards
CN113792042B (zh) * 2021-08-10 2023-09-15 浪潮金融信息技术有限公司 一种表格分析数据集的配置方法、系统及介质
CN114925127A (zh) * 2022-04-11 2022-08-19 北京金堤科技有限公司 级联结构数据的二维图表生成方法、装置、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1128372A (zh) * 1994-09-16 1996-08-07 国际商业机器公司 表中的剪贴方法与数据处理系统
CN1940913A (zh) * 2006-09-15 2007-04-04 北京北大方正电子有限公司 一种表格的可变数据排版的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1128372A (zh) * 1994-09-16 1996-08-07 国际商业机器公司 表中的剪贴方法与数据处理系统
CN1940913A (zh) * 2006-09-15 2007-04-04 北京北大方正电子有限公司 一种表格的可变数据排版的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2007-94971A 2007.04.12

Also Published As

Publication number Publication date
CN102103587A (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
CN102103587B (zh) 一种表格转换的方法和装置
CN101963955B (zh) XML格式文档转换为Word格式文档的系统和方法
CN1180362C (zh) 用于数字文件处理的系统和方法
CN102215126B (zh) 性能报表的生成方法及装置
CN102163233A (zh) 一种网页标记语言格式转换方法及系统
JPH09160821A (ja) ハイパーテキスト文書作成装置
CN103268340B (zh) 基于层次式索引的版式可回流文件建立和绘制方法
CN102982010A (zh) 提取文档结构的方法和装置
CN110333856A (zh) 服务化可编排的在线模板生成系统及方法
CN105739963A (zh) 生成网页的方法和装置
US20090254882A1 (en) Methods and devices for iterative binary coding and decoding of xml type documents
JP2007034571A (ja) 文書処理プログラム、文書処理方法
CN100433023C (zh) 绘制原理图设计文件的方法和系统
US20080077856A1 (en) Method and system for xml multi-transform
JPWO2005098662A1 (ja) 文書処理装置及び文書処理方法
Carlisle OpenMath, MathML, and XSL
CN103793464A (zh) 一种基于中立格式的报表导出方法
CN101799890B (zh) 证照数据处理方法和系统
CN110889261A (zh) 一种电子公文业务处理自动化的方法
CN105488052A (zh) 将结构化数据转为版式表单文件的方法及系统
CN113010473A (zh) 一种编辑yaml文件的方法和设备
CN104517062A (zh) 一种基于文档对象模型的分权限文档管理的方法及装置
JP2007183849A (ja) 文書処理装置
CN103995813A (zh) 一种生成电子票据模板的方法和系统
JP2019528485A (ja) フォントの生成方法及びその方法を記録した記録媒体並びにフォントの生成装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140604

Termination date: 20191217

CF01 Termination of patent right due to non-payment of annual fee