diff --git a/DocxFile使用帮助.docx b/DocxFile使用帮助.docx index 1b60842..5c0f868 100644 Binary files a/DocxFile使用帮助.docx and b/DocxFile使用帮助.docx differ diff --git a/Windows-X64/office_plugin.dll b/Windows-X64/office_plugin.dll index d11ef59..37a7619 100644 Binary files a/Windows-X64/office_plugin.dll and b/Windows-X64/office_plugin.dll differ diff --git a/funcext/TSOffice/TOfficeObj.tsf b/funcext/TSOffice/TOfficeObj.tsf index 06f357a..d308c3a 100644 --- a/funcext/TSOffice/TOfficeObj.tsf +++ b/funcext/TSOffice/TOfficeObj.tsf @@ -1,4 +1,4 @@ -// Version 1.4.8 +// Version 1.4.9 Function TOfficeObj(n); Begin @@ -251,6 +251,8 @@ Begin return new TwTc(); "twtrpr": return new TwTrPr(); + "twcnfstyle": + return new TwCnfStyle(); "twshading": return new TwShading(); "ttblcellmar": @@ -475,13 +477,11 @@ type TFont=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Name','name':'name','obj':XMLName,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Size','name':'sz','obj':XMLSize,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Bold','name':'b','obj':XMLBold,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') @@ -572,13 +572,11 @@ type TComment=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Font','name':Font.NodeName,'obj':Font,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TFont') ,('field':'Text','name':'t','obj':XMLText,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'Space','name':'t','obj':Space,'attrEx':'xml:space','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -620,13 +618,11 @@ type TComments=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("AuthorId", "authorId", AuthorId, ""),("Ref", "ref", Ref, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -681,13 +677,11 @@ type TRichText=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -736,13 +730,11 @@ type TxdrFromTo=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Col','name':'xdr:col','obj':Col,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'ColOff','name':'xdr:colOff','obj':ColOff,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'Row','name':'xdr:row','obj':Row,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') @@ -786,13 +778,11 @@ type TOff=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("X", "x", X, ""),("Y", "y", Y, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -830,13 +820,11 @@ type TExt=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Cx", "cx", Cx, ""),("Cy", "cy", Cy, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -878,13 +866,11 @@ type TXfrm=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Off','name':Off.NodeName,'obj':Off,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TOff') ,('field':'Ext','name':Ext.NodeName,'obj':Ext,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TExt') ) union ExtNodes; @@ -925,13 +911,11 @@ type TClientData=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("ObjectType", "ObjectType", ObjectType, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'MoveWithCells','name':'x:MoveWithCells','obj':MoveWithCells,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'SizeWithCells','name':'x:SizeWithCells','obj':SizeWithCells,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'Anchor','name':'x:Anchor','obj':Anchor,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') @@ -980,13 +964,11 @@ type TGraphicFramePr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Id','name':'xdr:cNvPr','obj':Id,'attrEx':'id','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Name','name':'xdr:cNvPr','obj':Name,'attrEx':'name','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'cNvGraphicFramePr','name':'xdr:cNvGraphicFramePr','obj':cNvGraphicFramePr,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') @@ -1034,13 +1016,11 @@ type TGraphicFrame=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("macro", "macro", macro, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'GraphicFramePr','name':GraphicFramePr.NodeName,'obj':GraphicFramePr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TGraphicFramePr') ,('field':'Xfrm','name':Xfrm.NodeName,'obj':Xfrm,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TXfrm') ,('field':'Graphic','name':Graphic.NodeName,'obj':Graphic,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TGraphic') @@ -1093,13 +1073,11 @@ type TtwoCellAnchor=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("EditAs", "editAs", EditAs, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'XFrom','name':XFrom.NodeName,'obj':XFrom,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TxdrFromTo') ,('field':'XTo','name':XTo.NodeName,'obj':XTo,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TxdrFromTo') ,('field':'GraphicFrame','name':GraphicFrame.NodeName,'obj':GraphicFrame,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TGraphicFrame') @@ -1146,13 +1124,11 @@ type TcNvPicPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'PicLocks','name':'a:picLocks','obj':PicLocks,'attrEx':'noChangeAspect','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -1194,13 +1170,11 @@ type TPictureFormat=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'BegColOff','name':'BegColOff','obj':BegColOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'BegRowOff','name':'BegRowOff','obj':BegRowOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'EndColOff','name':'EndColOff','obj':EndColOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1244,13 +1218,11 @@ type TShapeFormat=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'BegColOff','name':'BegColOff','obj':BegColOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'BegRowOff','name':'BegRowOff','obj':BegRowOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'EndColOff','name':'EndColOff','obj':EndColOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1314,13 +1286,11 @@ type TChartImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Width','name':'Width','obj':Width,'attrEx':'','nodeType':'','attrName':'', 'desc':'word图表宽度(cm)', 'class':'') ,('field':'Height','name':'Height','obj':Height,'attrEx':'','nodeType':'','attrName':'', 'desc':'word图表高度(cm)', 'class':'') ,('field':'BegColOff','name':'BegColOff','obj':BegColOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'') @@ -1430,13 +1400,11 @@ type TLegend=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'legendPos','name':'c:legendPos','obj':legendPos,'attrEx':'val','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Layout','name':'c:layout','obj':Layout,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'overlay','name':'c:overlay','obj':overlay,'attrEx':'val','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1493,13 +1461,11 @@ type TChartAxis=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'None','name':'None','obj':None,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Crossing','name':'Crossing','obj':Crossing,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'MajorGridlines','name':'MajorGridlines','obj':MajorGridlines,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1575,13 +1541,11 @@ type TNumFont=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Color','name':'Color','obj':Color,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Bold','name':'Bold','obj':Bold,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Italic','name':'Italic','obj':Italic,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1625,13 +1589,11 @@ type TNameLayout=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'X','name':'X','obj':X,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Y','name':'Y','obj':Y,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Width','name':'Width','obj':Width,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -1675,13 +1637,11 @@ type Tpt=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("IDx", "idx", IDx, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'V','name':'c:v','obj':V,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -1722,13 +1682,11 @@ type TStrCache=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'PtCount','name':'c:ptCount','obj':PtCount,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Pt','name':Pt.NodeName,'obj':Pt,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'Tpt') ) union ExtNodes; @@ -1770,13 +1728,11 @@ type TStrRef=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'F','name':'c:f','obj':F,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'StrCache','name':StrCache.NodeName,'obj':StrCache,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStrCache') ) union ExtNodes; @@ -1818,13 +1774,11 @@ type TcCat=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'StrRef','name':StrRef.NodeName,'obj':StrRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStrRef') ) union ExtNodes; End; @@ -1864,13 +1818,11 @@ type TNumCache=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'FormatCode','name':'c:formatCode','obj':FormatCode,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'PtCount','name':'c:ptCount','obj':PtCount,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Pt','name':Pt.NodeName,'obj':Pt,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'Tpt') @@ -1914,13 +1866,11 @@ type TNumRef=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'F','name':'c:f','obj':F,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'NumCache','name':NumCache.NodeName,'obj':NumCache,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TNumCache') ) union ExtNodes; @@ -1962,13 +1912,11 @@ type TcVal=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'NumRef','name':NumRef.NodeName,'obj':NumRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TNumRef') ) union ExtNodes; End; @@ -2008,13 +1956,11 @@ type TTx=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'StrRef','name':StrRef.NodeName,'obj':StrRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStrRef') ) union ExtNodes; End; @@ -2054,13 +2000,11 @@ type TSolidFill=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SchemeClr','name':SchemeClr.NodeName,'obj':SchemeClr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSchemeClr') ,('field':'SrgbClr','name':'a:srgbClr','obj':SrgbClr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -2100,13 +2044,11 @@ type TSchemeClr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Val", "val", Val, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'LumMod','name':'a:lumMod','obj':LumMod,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'LumOff','name':'a:lumOff','obj':LumOff,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -2149,13 +2091,11 @@ type TLn=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Algn", "algn", Algn, ""),("Cap", "cap", Cap, ""),("Cmpd", "cmpd", Cmpd, ""),("W", "w", W, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'NoFill','name':'a:noFill','obj':NoFill,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'prstDash','name':'a:prstDash','obj':prstDash,'attrEx':'val','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Round','name':'a:round','obj':Round,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') @@ -2205,13 +2145,11 @@ type TContourClr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SchemeClr','name':SchemeClr.NodeName,'obj':SchemeClr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSchemeClr') ) union ExtNodes; End; @@ -2251,13 +2189,11 @@ type TSp3D=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("ContourW", "contourW", ContourW, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'ContourClr','name':ContourClr.NodeName,'obj':ContourClr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TContourClr') ) union ExtNodes; End; @@ -2306,13 +2242,11 @@ type TspPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'NoFill','name':'a:noFill','obj':NoFill,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'SolidFill','name':SolidFill.NodeName,'obj':SolidFill,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSolidFill') ,('field':'Ln','name':Ln.NodeName,'obj':Ln,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TLn') @@ -2364,13 +2298,11 @@ type TDpt=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'IDx','name':'c:idx','obj':IDx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Bubble3D','name':'c:bubble3D','obj':Bubble3D,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'SpPr','name':SpPr.NodeName,'obj':SpPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TspPr') @@ -2414,13 +2346,11 @@ type TMarker=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Symbol','name':'c:symbol','obj':Symbol,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Size','name':'c:size','obj':Size,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'SpPr','name':SpPr.NodeName,'obj':SpPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TspPr') @@ -2483,13 +2413,11 @@ type TSer=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'IDx','name':'c:idx','obj':IDx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Ord','name':'c:order','obj':Ord,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Tx','name':Tx.NodeName,'obj':Tx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TTx') @@ -2557,13 +2485,11 @@ type TdLbls=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Del','name':'c:delete','obj':Del,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ShowLegendKey','name':'c:showLegendKey','obj':ShowLegendKey,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ShowVal','name':'c:showVal','obj':ShowVal,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -2618,13 +2544,11 @@ type TcCharts=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'BarDir','name':'c:barDir','obj':BarDir,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'BubbleScale','name':'c:bubbleScale','obj':BubbleScale,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Grouping','name':'c:grouping','obj':Grouping,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -2696,13 +2620,11 @@ type TcScaling=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'LogBase','name':'c:logBase','obj':LogBase,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Orientation','name':'c:orientation','obj':Orientation,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Max','name':'c:max','obj':Max,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -2748,13 +2670,11 @@ type TcChartLines=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SpPr','name':SpPr.NodeName,'obj':SpPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TspPr') ) union ExtNodes; End; @@ -2792,13 +2712,11 @@ type TcNumFmt=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("FormatCode", "formatCode", FormatCode, ""),("SourceLinked", "sourceLinked", SourceLinked, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -2838,13 +2756,11 @@ type TaR=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Rpr','name':Rpr.NodeName,'obj':Rpr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaRpr') ,('field':'T','name':'a:t','obj':T,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -2884,13 +2800,11 @@ type TaEndParaRPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Lang", "lang", Lang, ""),("AltLang", "altLang", AltLang, ""),("Sz", "sz", Sz, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -2935,13 +2849,11 @@ type TaP=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Ppr','name':Ppr.NodeName,'obj':Ppr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaPPr') ,('field':'R','name':R.NodeName,'obj':R,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaR') ,('field':'EndParaRPr','name':EndParaRPr.NodeName,'obj':EndParaRPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaEndParaRPr') @@ -2985,13 +2897,11 @@ type TaPPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Algn", "algn", Algn, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'DefRPr','name':DefRPr.NodeName,'obj':DefRPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaRPr') ) union ExtNodes; End; @@ -3030,13 +2940,11 @@ type TaLatin=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Typeface", "typeface", Typeface, ""),("Panose", "panose", Panose, ""),("PitchFamily", "pitchFamily", PitchFamily, ""),("Charset", "charset", Charset, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -3076,13 +2984,11 @@ type TaEa=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Typeface", "typeface", Typeface, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -3119,13 +3025,11 @@ type TaCs=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Typeface", "typeface", Typeface, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -3170,13 +3074,11 @@ type TaRPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("AltLang", "altLang", AltLang, ""),("Bold", "b", Bold, ""),("Baseline", "baseline", Baseline, ""),("Bmk", "bmk", Bmk, ""),("Cap", "cap", Cap, ""),("Dirty", "dirty", Dirty, ""),("Err", "err", Err, ""),("Italic", "i", Italic, ""),("Kern", "kern", Kern, ""),("Kumimoji", "kumimoji", Kumimoji, ""),("Lang", "lang", Lang, ""),("NoProof", "noProof", NoProof, ""),("NormalizeH", "normalizeH", NormalizeH, ""),("SmtID", "smtId", SmtID, ""),("Spc", "spc", Spc, ""),("Strike", "strike", Strike, ""),("Sz", "sz", Sz, ""),("SmtClean", "smtClean", SmtClean, ""),("U", "u", U, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SolidFill','name':SolidFill.NodeName,'obj':SolidFill,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSolidFill') ,('field':'Latin','name':Latin.NodeName,'obj':Latin,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaLatin') ,('field':'Ea','name':Ea.NodeName,'obj':Ea,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaEa') @@ -3239,13 +3141,11 @@ type TaBodyPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Vert", "vert", Vert, ""),("VertOverflow", "vertOverflow", VertOverflow, ""),("HorzOverflow", "horzOverflow", HorzOverflow, ""),("RtlCol", "rtlCol", RtlCol, ""),("Anchor", "anchor", Anchor, ""),("AnchorCtr", "anchorCtr", AnchorCtr, ""),("Rot", "rot", Rot, ""),("BIns", "bIns", BIns, ""),("CompatLnSpc", "compatLnSpc", CompatLnSpc, ""),("ForceAA", "forceAA", ForceAA, ""),("FromWordArt", "fromWordArt", FromWordArt, ""),("LIns", "lIns", LIns, ""),("NumCol", "numCol", NumCol, ""),("RIns", "rIns", RIns, ""),("SpcCol", "spcCol", SpcCol, ""),("SpcFirstLastPara", "spcFirstLastPara", SpcFirstLastPara, ""),("TIns", "tIns", TIns, ""),("Upright", "upright", Upright, ""),("Wrap", "wrap", Wrap, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -3304,13 +3204,11 @@ type TTxPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'BodyPr','name':BodyPr.NodeName,'obj':BodyPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaBodyPr') ,('field':'LstStyle','name':'a:lstStyle','obj':LstStyle,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'P','name':P.NodeName,'obj':P,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TaP') @@ -3364,13 +3262,11 @@ type TcAxs=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'AxID','name':'c:axId','obj':AxID,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Scaling','name':Scaling.NodeName,'obj':Scaling,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TcScaling') ,('field':'Del','name':'c:delete','obj':Del,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -3462,13 +3358,11 @@ type TplotArea=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Layout','name':'c:layout','obj':Layout,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ,('field':'Chart','name':Chart.NodeName,'obj':Chart,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TcCharts') ,('field':'CatAx','name':CatAx.NodeName,'obj':CatAx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TcAxs') @@ -3516,13 +3410,11 @@ type TView3D=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'RotX','name':'c:rotX','obj':RotX,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'RotY','name':'c:rotY','obj':RotY,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'RAngAx','name':'c:rAngAx','obj':RAngAx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -3620,13 +3512,11 @@ type TBorder=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("LineStyle", "style", XMLLineStyle, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Color','name':'color','obj':XMLColor,'attrEx':'rgb','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ThemeColor','name':'color','obj':XMLThemeColor,'attrEx':'theme','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ThemeColorTint','name':'color','obj':XMLThemeColorTint,'attrEx':'tint','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -3709,13 +3599,11 @@ type TBorders=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("DiagonalDown", "diagonalDown", XMLDiagonalDown, ""),("DiagonalUp", "diagonalUp", XMLDiagonalUp, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Left','name':Left.NodeName,'obj':Left,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBorder') ,('field':'Right','name':Right.NodeName,'obj':Right,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBorder') ,('field':'Top','name':Top.NodeName,'obj':Top,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBorder') @@ -3776,13 +3664,11 @@ type TNumFmts=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("NumFmtId", "numFmtId", NumFmtId, ""),("FormatCode", "formatCode", XMLFormatCode, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -3904,13 +3790,11 @@ type TGradient=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Degree", "degree", XMLDegree, ""),("Type", "type", XMLType, ""),("Left", "left", XMLLeft, ""),("Right", "right", XMLRight, ""),("Top", "top", XMLTop, ""),("Bottom", "bottom", XMLBottom, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Stop1','name':Stop1.NodeName,'obj':Stop1,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStop') ,('field':'Stop2','name':Stop2.NodeName,'obj':Stop2,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStop') ,('field':'Stop3','name':Stop3.NodeName,'obj':Stop3,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStop') @@ -3962,13 +3846,11 @@ type TFills=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Pattern','name':Pattern.NodeName,'obj':Pattern,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TPattern') ,('field':'Gradient','name':Gradient.NodeName,'obj':Gradient,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TGradient') ) union ExtNodes; @@ -4099,13 +3981,11 @@ type TPattern=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("PatternType", "patternType", XMLPatternType, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'ForegroundColor','name':'fgColor','obj':XMLForegroundColor,'attrEx':'rgb','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'BackgroundColor','name':'bgColor','obj':XMLBackgroundColor,'attrEx':'rgb','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ForegroundThemeColor','name':'fgColor','obj':XMLForegroundThemeColor,'attrEx':'theme','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -4219,13 +4099,11 @@ type TStop=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Position", "position", XMLPosition, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Color','name':'color','obj':XMLColor,'attrEx':'rgb','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ColorIndex','name':'color','obj':XMLColorIndex,'attrEx':'index','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'ThemeColor','name':'color','obj':XMLThemeColor,'attrEx':'theme','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -4335,13 +4213,11 @@ type TAlignment=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Horizontal", "horizontal", XMLHorizontal, ""),("Vertical", "vertical", XMLVertical, ""),("WrapText", "wrapText", XMLWrapText, ""),("ReadingOrder", "readingOrder", XMLReadingOrder, ""),("TextRotation", "textRotation", XMLTextRotation, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -4408,13 +4284,11 @@ type TProtection=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Lock", "locked", XMLLock, ""),("Hide", "hidden", XMLHide, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -4464,13 +4338,11 @@ type TStyle=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Border','name':Border.NodeName,'obj':Border,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBorders') ,('field':'Font','name':Font.NodeName,'obj':Font,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TFont') ,('field':'NumberFormat','name':NumberFormat.NodeName,'obj':NumberFormat,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TNumFmts') @@ -4522,13 +4394,11 @@ type TXf=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("NumFmtId", "numFmtId", NumFmtId, ""),("FontId", "fontId", FontId, ""),("FillId", "fillId", FillId, ""),("BorderId", "borderId", BorderId, ""),("XfId", "xfId", XfId, ""),("ApplyFont", "applyFont", ApplyFont, ""),("ApplyFill", "applyFill", ApplyFill, ""),("ApplyBorder", "applyBorder", ApplyBorder, ""),("ApplyAlignment", "applyAlignment", ApplyAlignment, ""),("ApplyProtection", "applyProtection", ApplyProtection, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Alignment','name':Alignment.NodeName,'obj':Alignment,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TAlignment') ,('field':'Protection','name':Protection.NodeName,'obj':Protection,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TProtection') ) union ExtNodes; @@ -4578,13 +4448,11 @@ type THeaderFooter=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("DifferentOddEven", "differentOddEven", DifferentOddEven, ""),("DifferentFirst", "differentFirst", DifferentFirst, ""),("ScaleWithDoc", "scaleWithDoc", ScaleWithDoc, ""),("AlignWithMargin", "alignWithMargins", AlignWithMargin, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'OddHeader','name':'oddHeader','obj':OddHeader,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'OddFooter','name':'oddFooter','obj':OddFooter,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'EvenHeader','name':'evenHeader','obj':EvenHeader,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') @@ -4714,13 +4582,11 @@ type TMargins=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Left", "left", XMLLeft, ""),("Right", "right", XMLRight, ""),("Top", "top", XMLTop, ""),("Bottom", "bottom", XMLBottom, ""),("Header", "header", XMLHeader, ""),("Footer", "footer", XMLFooter, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -4814,13 +4680,11 @@ type THyperLink=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("LinkType", "linkType", LinkType, ""),("LinkUrl", "linkUrl", XMLLinkUrl, ""),("Axis", "ref", Axis, ""),("Display", "display", XMLDisplay, ""),("Tooltip", "tooltip", XMLTooltip, ""),("RId", "r:id", RId, ""),("Location", "location", XMLLocation, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -4954,13 +4818,11 @@ type TSheetView=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("ShowGridLines", "showGridLines", XMLShowGridLines, ""),("ShowRowColHeaders", "showRowColHeaders", XMLShowRowColHeaders, ""),("TabSelected", "tabSelected", XMLTabSelected, ""),("View", "view", XMLView, ""),("ZoomScale", "zoomScale", XMLZoomScale, ""),("ZoomScaleNormal", "zoomScaleNormal", XMLZoomScaleNormal, ""),("WorkbookViewId", "workbookViewId", XMLWorkbookViewId, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5068,13 +4930,11 @@ type TPane=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("XSplit", "xSplit", XMLXSplit, ""),("YSplit", "ySplit", XMLYSplit, ""),("TopLeftCell", "topLeftCell", XMLTopLeftCell, ""),("ActivePane", "activePane", XMLActivePane, ""),("State", "state", XMLState, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5154,13 +5014,11 @@ type TSelection=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Pane", "pane", XMLPane, ""),("ActiveCell", "activeCell", XMLActiveCell, ""),("Sqref", "sqref", XMLSqref, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5199,13 +5057,11 @@ type TPageLayout=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("PaperSize", "paperSize", PaperSize, ""),("Scale", "scale", Scale, ""),("FitToWidth", "fitToWidth", FitToWidth, ""),("FitToHeight", "fitToHeight", FitToHeight, ""),("UseFirstPageNumber", "cellComments", UseFirstPageNumber, ""),("FirstPageNumber", "firstPageNumber", FirstPageNumber, ""),("PageOrder", "pageOrder", PageOrder, ""),("Orientation", "orientation", Orientation, ""),("BlackAndWhite", "blackAndWhite", BlackAndWhite, ""),("Draft", "draft", Draft, ""),("CellComments", "cellComments", CellComments, ""),("CellError", "errors", CellError, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5383,13 +5239,11 @@ type TAppProperty=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Application','name':'Application','obj':XMLApplication,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'DocSecurity','name':'DocSecurity','obj':XMLDocSecurity,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'ScaleCrop','name':'ScaleCrop','obj':XMLScaleCrop,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') @@ -5588,13 +5442,11 @@ type TCoreProperty=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Title','name':'dc:title','obj':XMLTitle,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'Subject','name':'dc:subject','obj':XMLSubject,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') ,('field':'Creator','name':'dc:creator','obj':XMLCreator,'attrEx':'','nodeType':'pcdata','attrName':'', 'desc':'', 'class':'') @@ -5652,13 +5504,11 @@ type TBr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Type", "w:type", Type, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5812,13 +5662,11 @@ type TwFont=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("eastAsia", "w:eastAsia", XMLeastAsia, "东亚字体"),("eastAsiaTheme", "w:eastAsiaTheme", XMLeastAsiaTheme, "东亚主题字体"),("hAnsi", "w:hAnsi", XMLhAnsi, "Unicode范围内的所有字符(该范围不属于上面定义的三个类别之一)字体."),("hAnsiTheme", "w:hAnsiTheme", XMLhAnsiTheme, "Unicode范围内的所有字符(该范围不属于上面定义的三个类别之一)主题字体. "),("hint", "w:hint", XMLhint, "指定用于设置当前运行中任何不明确字符格式的字体类型."),("ascii", "w:ascii", XMLascii, "ASCII range (0 - 127) 字体."),("asciiTheme", "w:asciiTheme", XMLasciiTheme, "ASCII range (0 - 127) 主题字体."),("cs", "w:cs", XMLcs, "字体:格式化复杂脚本Unicode范围内的所有字符."),("csTheme", "w:csTheme", XMLcsTheme, "主题字体:格式化复杂脚本Unicode范围内的所有字符. ")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -5867,13 +5715,11 @@ type TwrPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'rFont','name':rFont.NodeName,'obj':rFont,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwFont') ,('field':'Bold','name':'w:b','obj':Bold,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'黑体', 'class':'') ,('field':'noProof','name':'w:noProof','obj':noProof,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'不检查拼写或语法)', 'class':'') @@ -5974,13 +5820,11 @@ type TNumPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Level','name':'w:ilvl','obj':Level,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'项目层级', 'class':'') ,('field':'numId','name':'w:numId','obj':numId,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'项目编号ID', 'class':'') ) union ExtNodes; @@ -6022,13 +5866,11 @@ type TTextBoxImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'P','name':P.NodeName,'obj':P,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TParagraphImpl') ) union ExtNodes; End; @@ -6066,13 +5908,11 @@ type TWHyperLinkImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Anchor", "w:anchor", Anchor, ""),("History", "w:history", History, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -6103,6 +5943,7 @@ type TwpPr=class(NodeInfo) NumPr := new TNumPr(self, 'w:numPr'); Tabs := new TTabStops(self, 'w:tabs'); rPr := new TwrPr(self, 'w:rPr'); + cnfStyle := new TwCnfStyle(self, 'w:cnfStyle'); Bdr := new TpBdr(self, 'w:pBdr'); //TODO... End; @@ -6113,18 +5954,17 @@ type TwpPr=class(NodeInfo) NumPr.InitRootNode(node); Tabs.InitRootNode(node); rPr.InitRootNode(node); + cnfStyle.InitRootNode(node); Bdr.InitRootNode(node); End; Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'StyleId','name':'w:pStyle','obj':StyleId,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'段落样式ID', 'class':'') ,('field':'NumPr','name':NumPr.NodeName,'obj':NumPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'项目编号、数字编号', 'class':'TNumPr') ,('field':'Alignment','name':'w:jc','obj':Alignment,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'左、右、居中和对齐', 'class':'') @@ -6156,7 +5996,7 @@ type TwpPr=class(NodeInfo) ,('field':'AutoSpaceDN','name':'w:autoSpaceDN','obj':AutoSpaceDN,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'自动调整东亚文本和数字的间距', 'class':'') ,('field':'Tabs','name':Tabs.NodeName,'obj':Tabs,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TTabStops') ,('field':'rPr','name':rPr.NodeName,'obj':rPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TwrPr') - ,('field':'cnfStyle','name':'w:cnfStyle','obj':cnfStyle,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'段落条件格式:此元素指定格式属性的已应用于此段落,如果该段落包含在表格单元格的条件的表格样式的集。https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.conditionalformatstyle?view=openxml-2.8.1', 'class':'') + ,('field':'cnfStyle','name':cnfStyle.NodeName,'obj':cnfStyle,'attrEx':'','nodeType':'','attrName':'', 'desc':'段落条件格式:此元素指定格式属性的已应用于此段落,如果该段落包含在表格单元格的条件的表格样式的集。https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.conditionalformatstyle?view=openxml-2.8.1', 'class':'TwCnfStyle') ,('field':'textFlow','name':'w:textFlow','obj':textFlow,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'disable', 'class':'') ,('field':'Bdr','name':Bdr.NodeName,'obj':Bdr,'attrEx':'','nodeType':'','attrName':'', 'desc':'文字边框', 'class':'TpBdr') ) union ExtNodes; @@ -6228,13 +6068,11 @@ type TcNvGraphicFramePr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'noChangeAspect','name':'a:graphicFrameLocks','obj':noChangeAspect,'attrEx':'noChangeAspect','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'xmlns','name':'a:graphicFrameLocks','obj':xmlns,'attrEx':'xmlns:a','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -6278,13 +6116,11 @@ type TnvPicPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'CNvPr','name':CNvPr.NodeName,'obj':CNvPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TCNvPr') ,('field':'CNvPicPr','name':CNvPicPr.NodeName,'obj':CNvPicPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TcNvPicPr') ,('field':'CNvSpPr','name':'xdr:cNvSpPr','obj':CNvSpPr,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') @@ -6328,13 +6164,11 @@ type TCNvPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("ID", "id", ID, ""),("Name", "name", Name, ""),("Descr", "descr", Descr, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'ExtLst','name':ExtLst.NodeName,'obj':ExtLst,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TExtLst') ) union ExtNodes; End; @@ -6377,13 +6211,11 @@ type TExtLst=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Ext','name':Ext.NodeName,'obj':Ext,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TAext') ) union ExtNodes; End; @@ -6421,13 +6253,11 @@ type TAext=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Uri", "uri", Uri, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Xmlns16','name':'a16:creationId','obj':Xmlns16,'attrEx':'xmlns:a16','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Id','name':'a16:creationId','obj':Id,'attrEx':'id','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -6468,13 +6298,11 @@ type TprstGeom=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Prst", "prst", Prst, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'AvLst','name':'a:avLst','obj':AvLst,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -6517,13 +6345,11 @@ type TblipFill=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Blip','name':Blip.NodeName,'obj':Blip,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBlip') ,('field':'Stretch','name':Stretch.NodeName,'obj':Stretch,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TStretch') ) union ExtNodes; @@ -6565,13 +6391,11 @@ type TwLine=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SolidFill','name':SolidFill.NodeName,'obj':SolidFill,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSolidFill') ) union ExtNodes; End; @@ -6615,13 +6439,11 @@ type TpicsPpr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'XFrm','name':XFrm.NodeName,'obj':XFrm,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TXfrm') ,('field':'PrstGeom','name':PrstGeom.NodeName,'obj':PrstGeom,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TprstGeom') ,('field':'Line','name':Line.NodeName,'obj':Line,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwLine') @@ -6663,13 +6485,11 @@ type TBlip=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Xmlns", "xmlns:r", Xmlns, ""),("Embed", "r:embed", Embed, ""),("Cstate", "cstate", Cstate, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -6708,13 +6528,11 @@ type TStretch=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'FillRect','name':'a:fillRect','obj':FillRect,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -6754,13 +6572,11 @@ type TRef=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Idx", "idx", Idx, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'SchemeClr','name':SchemeClr.NodeName,'obj':SchemeClr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TScheme') ) union ExtNodes; End; @@ -6799,13 +6615,11 @@ type TScheme=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Val", "val", Val, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Shade','name':'a:shade','obj':Shade,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -6852,13 +6666,11 @@ type TXdrStyle=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'LnRef','name':LnRef.NodeName,'obj':LnRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRef') ,('field':'FillRef','name':FillRef.NodeName,'obj':FillRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRef') ,('field':'EffectRef','name':EffectRef.NodeName,'obj':EffectRef,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRef') @@ -6912,13 +6724,11 @@ type TPic=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Macro", "macro", Macro, ""),("Textlink", "textlink", Textlink, ""),("Xmlns", "xmlns:pic", Xmlns, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'NvPicPr','name':NvPicPr.NodeName,'obj':NvPicPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TnvPicPr') ,('field':'BlipFill','name':BlipFill.NodeName,'obj':BlipFill,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TblipFill') ,('field':'SpPr','name':SpPr.NodeName,'obj':SpPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSpPr') @@ -6969,13 +6779,11 @@ type TGraphicData=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("uri", "uri", uri, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'C','name':'c:chart','obj':C,'attrEx':'xmlns:c','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'R','name':'c:chart','obj':R,'attrEx':'xmlns:r','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Rid','name':'c:chart','obj':Rid,'attrEx':'r:id','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -7022,13 +6830,11 @@ type TGraphic=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("xmlns", "xmlns:a", xmlns, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'GraphicData','name':GraphicData.NodeName,'obj':GraphicData,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TGraphicData') ) union ExtNodes; End; @@ -7071,13 +6877,11 @@ type TwInline=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("distT", "distT", distT, ""),("distB", "distB", distB, ""),("distL", "distL", distL, ""),("distR", "distR", distR, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'cx','name':'wp:extent','obj':cx,'attrEx':'cx','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'cy','name':'wp:extent','obj':cy,'attrEx':'cy','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'l','name':'wp:effectExtent','obj':l,'attrEx':'l','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -7141,13 +6945,11 @@ type TwDrawing=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'WInline','name':WInline.NodeName,'obj':WInline,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwInline') ) union ExtNodes; End; @@ -7185,13 +6987,11 @@ type TText=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Space", "xml:space", Space, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Text','name':'Text','obj':Text,'attrEx':'','nodeType':'tcdata','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -7236,13 +7036,11 @@ type TRunImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("xmlns", "xmlns:w", xmlns, ""),("rsidR", "w:rsidR", rsidR, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'rPr','name':rPr.NodeName,'obj':rPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'字体属性', 'class':'TwrPr') ,('field':'fldCharType','name':'w:fldChar','obj':fldCharType,'attrEx':'w:fldCharType','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Dirty','name':'w:fldChar','obj':Dirty,'attrEx':'w:dirty','nodeType':'','attrName':'', 'desc':'', 'class':'') @@ -7300,13 +7098,11 @@ type TBookMark=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("name", "w:name", name, ""),("id", "w:id", id, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7346,13 +7142,11 @@ type TFldSimple=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("instr", "w:instr", instr, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Run','name':Run.NodeName,'obj':Run,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRun') ) union ExtNodes; End; @@ -7399,13 +7193,11 @@ type TParagraphImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'pPr','name':pPr.NodeName,'obj':pPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'段落格式', 'class':'TwpPr') ,('field':'markStart','name':markStart.NodeName,'obj':markStart,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TBookMark') ,('field':'Run','name':Run.NodeName,'obj':Run,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRun') @@ -7450,13 +7242,11 @@ type TwBody=class(NodeInfo, TDocumentBody) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'ps','name':'w:p','obj':ps,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'', 'class':'TParagraphImpl') ) union ExtNodes; End; @@ -7507,13 +7297,11 @@ type TOptInfo=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Author", "w:author", XMLAuthor, "作者"),("Date", "w:date", Date, "修改日期"),("ID", "w:id", ID, "disable")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7565,13 +7353,11 @@ type TRevisionImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Author", "w:author", XMLAuthor, "作者"),("Date", "w:date", Date, "修改日期"),("ID", "w:id", ID, "disable")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7625,13 +7411,11 @@ type TDocCommentImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Author", "w:author", XMLAuthor, "作者"),("Date", "w:date", Date, "修改日期"),("ID", "w:id", ID, "disable")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'P','name':P.NodeName,'obj':P,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TParagraphImpl') ) union ExtNodes; End; @@ -7672,13 +7456,11 @@ type TCol=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("W", "w:w", W, "Column Width"),("space", "w:space", space, "Space Before Following Column")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7717,13 +7499,11 @@ type TCols=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("equalWidth", "w:equalWidth", equalWidth, "Equal Column Widths"),("num", "w:num", num, "Number of Equal Width Columns"),("sep", "w:sep", sep, "Draw Line Between Columns"),("space", "w:space", space, "Spacing Between Equal Width Columns")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'col','name':'w:col','obj':col,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'Column Definitions', 'class':'TCol') ) union ExtNodes; End; @@ -7765,13 +7545,11 @@ type TPageMargin=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("gutter", "w:gutter", gutter, "当前节中每页的页边距."),("footer", "w:footer", footer, "指定从页面底部边缘到页脚底部边缘的距离(以二十分之一点为单位)."),("header", "w:header", header, "指定从页面上边缘到页眉上边缘的距离(以二十分之一为单位)."),("left", "w:left", left, "指定页面左边缘与此文档文本范围左边缘之间的距离(以点的二十分之一为单位)."),("bottom", "w:bottom", bottom, "指定主文档的文本页边距底部与本节中所有页面的页面底部之间的距离(以二十分之一为单位)."),("right", "w:right", right, "指定页面右边缘与此文档文本范围右边缘之间的距离(以点的二十分之一为单位)."),("top", "w:top", top, "指定主文档的文本页边距顶部与本节中所有页面的页面顶部之间的距离(以二十分之一为单位).")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7814,13 +7592,11 @@ type TDocGrid=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("charSpace", "w:charSpace", charSpace, "字符间距"),("charSize", "w:charSize", charSize, "文档网格字符间距"),("linePitch", "w:linePitch", linePitch, "文档网格线间距"),("Type", "w:type", Type, "文档网格线类型")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7860,13 +7636,11 @@ type TReference=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Type", "w:type", Type, ""),("ID", "r:id", ID, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -7912,13 +7686,11 @@ type TPageBorders=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("offsetFrom", "w:offsetFrom", offsetFrom, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Top','name':Top.NodeName,'obj':Top,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') ,('field':'Left','name':Left.NodeName,'obj':Left,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') ,('field':'Bottom','name':Bottom.NodeName,'obj':Bottom,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') @@ -7963,13 +7735,11 @@ type TPage=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Code", "w:code", Code, "纸张类型(指定打印机特定的纸张代码)."),("Height", "w:h", Height, "当前节中所有页面的高度(以二十分之一点为单位)."),("Width", "w:w", Width, "此属性表示当前节中所有页面的宽度(以二十分之一为单位)."),("Orient ", "w:orient ", Orient , "指定此节中所有页面的方向.")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8023,13 +7793,11 @@ type TDocSectionImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Header','name':Header.NodeName,'obj':Header,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TReference') ,('field':'Footer','name':Footer.NodeName,'obj':Footer,'attrEx':'','nodeType':'','attrName':'', 'desc':'disable', 'class':'TReference') ,('field':'bidi','name':'w:bidi','obj':bidi,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'章节从右到左的布局', 'class':'') @@ -8102,13 +7870,11 @@ type TcellMerge=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Author", "w:author", XMLAuthor, ""),("Date", "w:date", Date, ""),("ID", "w:id", ID, ""),("vmerge", "w:vmerge", vmerge, "垂直合并设置。"),("vmergeOrig", "w:vmergeOrig", vmergeOrig, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8140,6 +7906,7 @@ type TwTcPr=class(NodeInfo) Function Init(); Begin Shading := new TwShading(self, 'w:shd'); + cnfStyle := new TwCnfStyle(self, 'w:cnfStyle'); CellMar := new TTblCellMar(self, 'w:tcMar'); Borders := new TwTblBorders(self, 'w:tcBorders'); Del := new TOptInfo(self, 'w:cellDel'); @@ -8152,6 +7919,7 @@ type TwTcPr=class(NodeInfo) Begin RootObj := node; Shading.InitRootNode(node); + cnfStyle.InitRootNode(node); CellMar.InitRootNode(node); Borders.InitRootNode(node); Del.InitRootNode(node); @@ -8161,17 +7929,15 @@ type TwTcPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Width','name':'w:tcW','obj':Width,'attrEx':'w:w','nodeType':'','attrName':'', 'desc':'表格单元格宽度', 'class':'') ,('field':'Type','name':'w:tcW','obj':Type,'attrEx':'w:type','nodeType':'','attrName':'', 'desc':'宽度属性的单位。此属性用于定义表格的各种属性,包括:单元格间距、首选宽度和表格边距。', 'class':'') ,('field':'Shading','name':Shading.NodeName,'obj':Shading,'attrEx':'','nodeType':'','attrName':'', 'desc':'表头底纹', 'class':'TwShading') - ,('field':'cnfStyle','name':'w:cnfStyle','obj':cnfStyle,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'此表格单元的条件表格样式格式设置属性集。', 'class':'') + ,('field':'cnfStyle','name':cnfStyle.NodeName,'obj':cnfStyle,'attrEx':'','nodeType':'','attrName':'', 'desc':'此表格单元的条件表格样式格式设置属性集。', 'class':'TwCnfStyle') ,('field':'CellMar','name':CellMar.NodeName,'obj':CellMar,'attrEx':'','nodeType':'','attrName':'', 'desc':'单元格边距设置', 'class':'TTblCellMar') ,('field':'Borders','name':Borders.NodeName,'obj':Borders,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwTblBorders') ,('field':'gridSpan','name':'w:gridSpan','obj':gridSpan,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'当前表单元格所跨的网格列', 'class':'') @@ -8241,13 +8007,11 @@ type TwTc=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'TcPr','name':TcPr.NodeName,'obj':TcPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwTcPr') ,('field':'P','name':P.NodeName,'obj':P,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TParagraphImpl') ) union ExtNodes; @@ -8277,6 +8041,7 @@ type TwTrPr=class(NodeInfo) Function Init(); Begin + cnfStyle := new TwCnfStyle(self, 'w:cnfStyle'); Del := new TOptInfo(self, 'w:del'); //TODO... End; @@ -8284,23 +8049,22 @@ type TwTrPr=class(NodeInfo) Function InitRootNode(node); Begin RootObj := node; + cnfStyle.InitRootNode(node); Del.InitRootNode(node); End; Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Height','name':'w:trHeight','obj':Height,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'行高', 'class':'') ,('field':'Rule','name':'w:trHeight','obj':Rule,'attrEx':'w:hRule','nodeType':'','attrName':'', 'desc':'如果Rule的值为自动,则应根据其内容的高度自动确定表行的高度,忽略Height值;如果Rule的值至少为least,则表行的高度应至少为Height属性的值;如果Rule的值是精确的,那么表行的高度应该正好是Height属性的值。', 'class':'') ,('field':'Alignment','name':'w:jc','obj':Alignment,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'对齐方式(left、right、center)', 'class':'') ,('field':'CantSplit','name':'w:cantSplit','obj':CantSplit,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'表行不能跨页分隔', 'class':'') - ,('field':'cnfStyle','name':'w:cnfStyle','obj':cnfStyle,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'表行条件格式', 'class':'') + ,('field':'cnfStyle','name':cnfStyle.NodeName,'obj':cnfStyle,'attrEx':'','nodeType':'','attrName':'', 'desc':'表行条件格式', 'class':'TwCnfStyle') ,('field':'gridAfter','name':'w:gridAfter','obj':gridAfter,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'最后一个单元格后的网格列', 'class':'') ,('field':'gridBefore','name':'w:gridBefore','obj':gridBefore,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'第一个单元格之前的网格列', 'class':'') ,('field':'hidden','name':'w:hidden','obj':hidden,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'隐藏表行标记', 'class':'') @@ -8324,6 +8088,59 @@ type TwTrPr=class(NodeInfo) Del; End; +/////////////////////////////////////////////////////////////// +/// TwCnfStyle +/////////////////////////////////////////////////////////////// +type TwCnfStyle=class(NodeInfo) + Function Create(); overload; + Begin + Create(nil, 'w:cnfStyle'); + End; + + Function Create(p, name); overload; + Begin + Class(NodeInfo).Create(p, name); + Init(); + End; + + Function Init(); + Begin + //TODO... + End; + + Function InitRootNode(node); + Begin + RootObj := node; + End; + + Function GetAttrs(); override; + Begin + return array(("Val", "w:val", Val, ""),("FirstRow", "w:firstRow", FirstRow, "首行"),("LastRow", "w:lastRow", LastRow, "末行"),("FirstColumn", "w:firstColumn", FirstColumn, "首列"),("LastColumn", "w:lastColumn", LastColumn, "末列"),("OddVBand", "w:oddVBand", OddVBand, "奇条带列"),("EvenVBand", "w:evenVBand", EvenVBand, "偶条带列"),("OddHBand", "w:oddHBand", OddHBand, "奇条带行"),("EvenHBand", "w:evenHBand", EvenHBand, "偶条带行"),("FirstRowFirstColumn", "w:firstRowFirstColumn", FirstRowFirstColumn, "左上角单元格"),("FirstRowLastColumn", "w:firstRowLastColumn", FirstRowLastColumn, "右上角单元格"),("LastRowFirstColumn", "w:lastRowFirstColumn", LastRowFirstColumn, "左下角单元格"),("LastRowLastColumn", "w:lastRowLastColumn", LastRowLastColumn, "右下角单元格")) union ExtAttr; + End; + + Function GetChildren(); override; + Begin + return ExtNodes; + End; + + //Attributes + Val; + FirstRow; + LastRow; + FirstColumn; + LastColumn; + OddVBand; + EvenVBand; + OddHBand; + EvenHBand; + FirstRowFirstColumn; + FirstRowLastColumn; + LastRowFirstColumn; + LastRowLastColumn; + + //Nodes +End; + /////////////////////////////////////////////////////////////// /// TwShading /////////////////////////////////////////////////////////////// @@ -8351,13 +8168,11 @@ type TwShading=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Val", "w:val", Val, "指定用于将图案颜色覆盖在此段落底纹的背景色上的图案。此图案由应用于背景底纹颜色上的遮罩组成,以获得应显示图案颜色的位置。."),("Color", "w:color", Color, "前景颜色: RRGGBB format or auto"),("Fill", "w:fill", Fill, "背景颜色: RRGGBB format or auto"),("ThemeColor", "w:themeColor", ThemeColor, "前景主题颜色: theme color"),("ThemeFill", "w:themeFill", ThemeFill, "背景主题颜色: theme color"),("ThemeFillShade", "w:themeFillShade", ThemeFillShade, "阴影颜色: theme color"),("ThemeFillTint", "w:themeFillTint", ThemeFillTint, "tint 主题填充颜色."),("ThemeShade", "w:themeShade", ThemeShade, "主题阴影颜色."),("ThemeTint", "w:themeTint", ThemeTint, "tint主题阴影颜色.")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8402,13 +8217,11 @@ type TTblCellMar=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Top','name':'w:top','obj':Top,'attrEx':'w:w','nodeType':'','attrName':'', 'desc':'表格单元格上边距,指定宽度属性的值.', 'class':'') ,('field':'TopType','name':'w:top','obj':TopType,'attrEx':'w:type','nodeType':'','attrName':'', 'desc':'宽度属性的单位,auto(自动确定的宽度)、dxa(点的二十分之一宽度)nil(无宽度)pct(百分之五十宽度)', 'class':'') ,('field':'Left','name':'w:left','obj':Left,'attrEx':'w:w','nodeType':'','attrName':'', 'desc':'表格单元格左边距,指定宽度属性的值.', 'class':'') @@ -8466,13 +8279,11 @@ type TTblPrEx=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Alignment','name':'w:jc','obj':Alignment,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'Borders','name':Borders.NodeName,'obj':Borders,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwTblBorders') ,('field':'Shading','name':Shading.NodeName,'obj':Shading,'attrEx':'','nodeType':'','attrName':'', 'desc':'表头底纹', 'class':'TwShading') @@ -8549,13 +8360,11 @@ type TwTr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'tblPrEx','name':tblPrEx.NodeName,'obj':tblPrEx,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TTblPrEx') ,('field':'TrPr','name':TrPr.NodeName,'obj':TrPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwTrPr') ,('field':'Tc','name':'w:tc','obj':Tc,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'', 'class':'TwTc') @@ -8597,13 +8406,11 @@ type TwBorder=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Val", "w:val", Val, "指定边框样式."),("Color", "w:color", Color, "边框颜色."),("ThemeColor", "w:themeColor", ThemeColor, "边框主题颜色."),("ThemeTint", "w:themeTint", ThemeTint, "指定应用于此边框实例提供的主题颜色(如果有)的色调值."),("Size", "w:sz", Size, "边框宽度."),("Frame", "w:frame", Frame, "指定是否应修改指定的边框,以通过将边框外观从离文本最近的边缘反转到离文本最远的边缘来创建框架效果."),("Shadow", "w:shadow", Shadow, "边框阴影."),("Space", "w:space", Space, "放置此边框的间距偏移."),("ThemeShade", "w:themeShade", ThemeShade, "边框阴影的主题颜色.")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8645,6 +8452,7 @@ type TwTblBorders=class(NodeInfo) InsideH := new TwBorder(self, 'w:insideH'); InsideV := new TwBorder(self, 'w:insideV'); tr2bl := new TwBorder(self, 'w:tr2bl'); + tl2br := new TwBorder(self, 'w:tl2br'); //TODO... End; @@ -8658,24 +8466,24 @@ type TwTblBorders=class(NodeInfo) InsideH.InitRootNode(node); InsideV.InitRootNode(node); tr2bl.InitRootNode(node); + tl2br.InitRootNode(node); End; Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Top','name':Top.NodeName,'obj':Top,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') ,('field':'Left','name':Left.NodeName,'obj':Left,'attrEx':'','nodeType':'','attrName':'', 'desc':'左边框属性', 'class':'TwBorder') ,('field':'Bottom','name':Bottom.NodeName,'obj':Bottom,'attrEx':'','nodeType':'','attrName':'', 'desc':'底边框属性', 'class':'TwBorder') ,('field':'Right','name':Right.NodeName,'obj':Right,'attrEx':'','nodeType':'','attrName':'', 'desc':'右边框属性', 'class':'TwBorder') ,('field':'InsideH','name':InsideH.NodeName,'obj':InsideH,'attrEx':'','nodeType':'','attrName':'', 'desc':'水平边框属性', 'class':'TwBorder') ,('field':'InsideV','name':InsideV.NodeName,'obj':InsideV,'attrEx':'','nodeType':'','attrName':'', 'desc':'垂直边框属性', 'class':'TwBorder') - ,('field':'tr2bl','name':tr2bl.NodeName,'obj':tr2bl,'attrEx':'','nodeType':'','attrName':'', 'desc':'行边框属性', 'class':'TwBorder') + ,('field':'tr2bl','name':tr2bl.NodeName,'obj':tr2bl,'attrEx':'','nodeType':'','attrName':'', 'desc':'右上对角线属性', 'class':'TwBorder') + ,('field':'tl2br','name':tl2br.NodeName,'obj':tl2br,'attrEx':'','nodeType':'','attrName':'', 'desc':'左下对角线属性', 'class':'TwBorder') ) union ExtNodes; End; @@ -8689,6 +8497,7 @@ type TwTblBorders=class(NodeInfo) InsideH; InsideV; tr2bl; + tl2br; End; /////////////////////////////////////////////////////////////// @@ -8718,13 +8527,11 @@ type TwTblpPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("bottomFromText", "w:bottomFromText ", bottomFromText, "指定当前浮动表与该浮动表下方段落中文本顶部之间应保持的最小距离。"),("horizAnchor", "w:horizAnchor", horizAnchor, "指定水平定位的基础对象。"),("leftFromText", "w:leftFromText", leftFromText, "指定当前浮动表与该浮动表左侧段落中文本边缘之间应保持的最小距离。"),("rightFromText", "w:rightFromText", rightFromText, "指定当前浮动表与该浮动表右侧段落中文本边缘之间应保持的最小距离。"),("tblpX", "w:tblpX", tblpX, "指定浮动表的绝对水平位置。此绝对位置是相对于horzAnchor属性为此浮动表指定的水平定位点指定的。"),("tblpXSpec", "w:tblpXSpec", tblpXSpec, "指定浮动表的相对水平位置。此相对位置是相对于此浮动表的horizAnchor属性指定的水平定位点指定的。"),("tblpY", "w:tblpY", tblpY, "指定浮动表的绝对垂直位置。此绝对位置是相对于此浮动表的vertAnchor属性指定的垂直锚点指定的。"),("tblpYSpec", "w:tblpYSpec", tblpYSpec, "指定浮动表的相对垂直位置。此相对位置是相对于此浮动表的vertAnchor属性指定的垂直锚点指定的。"),("topFromText", "w:topFromText", topFromText, "指定当前浮动表与该浮动表上方段落中文本底部边缘之间应保持的最小距离。"),("vertAnchor", "w:vertAnchor", vertAnchor, "指定应根据其计算tblpY属性中的垂直定位的基础对象。")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8778,13 +8585,11 @@ type TwTblPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'StyleID','name':'w:tblStyle','obj':StyleID,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'样式ID', 'class':'') ,('field':'Width','name':'w:tblW','obj':Width,'attrEx':'w:w','nodeType':'','attrName':'', 'desc':'表格宽度', 'class':'') ,('field':'WidthType','name':'w:tblW','obj':WidthType,'attrEx':'w:type','nodeType':'','attrName':'', 'desc':'宽度属性的单位。如"auto"表示根据内容调整,此时需要设置"width=0"; "pct"是按比例设置,转换比例是50, 10%时候需要width为500; "dax"表示自定义宽度,此时width单位是twips,即1cm=567twips', 'class':'') @@ -8860,13 +8665,11 @@ type TwGridCol=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("W", "w:w", W, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -8904,13 +8707,11 @@ type TwTblGrid=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'GridCol','name':'w:gridCol','obj':GridCol,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'', 'class':'TwGridCol') ) union ExtNodes; End; @@ -8953,13 +8754,11 @@ type TTableImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'TblPr','name':TblPr.NodeName,'obj':TblPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwTblPr') ,('field':'TblGrid','name':TblGrid.NodeName,'obj':TblGrid,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwTblGrid') ,('field':'TR','name':'w:tr','obj':TR,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'', 'class':'TwTr') @@ -9001,13 +8800,11 @@ type TCorePropertiesImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -9047,13 +8844,11 @@ type TPictureImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'pPr','name':pPr.NodeName,'obj':pPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TwpPr') ,('field':'Run','name':Run.NodeName,'obj':Run,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TRunImpl') ) union ExtNodes; @@ -9103,13 +8898,11 @@ type TpBdr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'top','name':top.NodeName,'obj':top,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') ,('field':'left','name':left.NodeName,'obj':left,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') ,('field':'bottom','name':bottom.NodeName,'obj':bottom,'attrEx':'','nodeType':'','attrName':'', 'desc':'边框属性', 'class':'TwBorder') @@ -9155,13 +8948,11 @@ type TLatentStyle=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Name", "w:name", Name, ""),("Count", "w:count", Count, ""),("defLockedState", "w:defLockedState", defLockedState, ""),("defQFormat", "w:defQFormat", defQFormat, ""),("defSemiHidden", "w:defSemiHidden", defSemiHidden, ""),("defUIPriority", "w:defUIPriority", defUIPriority, ""),("defUnhideWhenUsed", "w:defUnhideWhenUsed", defUnhideWhenUsed, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -9214,13 +9005,11 @@ type TtblStylePr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'pPr','name':pPr.NodeName,'obj':pPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'段落格式', 'class':'TwpPr') ,('field':'rPr','name':rPr.NodeName,'obj':rPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'字体属性', 'class':'TwrPr') ,('field':'TrPr','name':TrPr.NodeName,'obj':TrPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'表格行属性', 'class':'TwTrPr') @@ -9278,13 +9067,11 @@ type TDocxStyleImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("StyleID", "w:styleId", StyleID, "样式ID(数字或字符串)。"),("Default", "w:default", Default, "是否缺省样式,如缺省段落、缺省表格样式"),("wType", "w:type", wType, "样式类型(paragraph、chartacter、table)"),("CustomStyle ", "w:customStyle ", CustomStyle , "disable")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Name','name':'w:name','obj':Name,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'样式名称', 'class':'') ,('field':'Aliases','name':'w:aliases','obj':Aliases,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'样式别名.', 'class':'') ,('field':'AutoRedefine','name':'w:autoRedefine','obj':AutoRedefine,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'文本变动时,是否自动修改样式.', 'class':'') @@ -9368,13 +9155,11 @@ type TDocPartObj=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'docPartGallery','name':'w:docPartGallery','obj':docPartGallery,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'docPartUnique','name':'w:docPartUnique','obj':docPartUnique,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; @@ -9418,13 +9203,11 @@ type TSdtPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'rPr','name':rPr.NodeName,'obj':rPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'字体属性', 'class':'TwrPr') ,('field':'ID','name':'w:id','obj':ID,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'', 'class':'') ,('field':'docPartObj','name':docPartObj.NodeName,'obj':docPartObj,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TDocPartObj') @@ -9468,13 +9251,11 @@ type TSdtEndPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'rPr','name':rPr.NodeName,'obj':rPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'字体属性', 'class':'TwrPr') ) union ExtNodes; End; @@ -9512,13 +9293,11 @@ type TSdtContent=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -9560,13 +9339,11 @@ type TTableContentImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'sdtPr','name':sdtPr.NodeName,'obj':sdtPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSdtPr') ,('field':'sdtEndPr','name':sdtEndPr.NodeName,'obj':sdtEndPr,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSdtEndPr') ,('field':'sdtContent','name':sdtContent.NodeName,'obj':sdtContent,'attrEx':'','nodeType':'','attrName':'', 'desc':'', 'class':'TSdtContent') @@ -9609,13 +9386,11 @@ type TTabStopsImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'Tabs','name':'w:tab','obj':Tabs,'attrEx':'','nodeType':'','attrName':'','arrObj':'array', 'desc':'', 'class':'TTabStop') ) union ExtNodes; End; @@ -9653,13 +9428,11 @@ type TTabStop=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Val", "w:val", Val, "Specifies the type of custom tab stop, which determines the behavior of the tab stop and the alignment which shall be applied to text entered at the current custom tab stop."),("leader", "w:leader", leader, "Specifies the character which shall be used to fill in the space created by a tab which ends at this custom tab stop. This character shall be repeated as required to completely fill the tab spacing generated by the tab character."),("Position", "w:pos", Position, "Specifies the position of the current custom tab stop with respect to the current page margins. ")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -9698,13 +9471,11 @@ type TNumber=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("numId", "w:numId", numId, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'abstractNumId','name':'w:abstractNumId','obj':abstractNumId,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -9747,13 +9518,11 @@ type TLevel=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("ilvl", "w:ilvl", ilvl, "内容是否包含小数。"),("tentative", "w:tentative", tentative, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'start','name':'w:start','obj':start,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'给定编号级别定义中父编号级别使用的编号的起始值。', 'class':'') ,('field':'numFmt','name':'w:numFmt','obj':numFmt,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'编号类型(单极、多级、项目编号等)。', 'class':'') ,('field':'lvlText','name':'w:lvlText','obj':lvlText,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'编号文本内容格式,如(%1.%2.%3.%4)。', 'class':'') @@ -9805,13 +9574,11 @@ type TNumStyleImpl=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("abstractNumId", "w:abstractNumId", abstractNumId, "latentStyles编号ID(编号段落的外观和行为)")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'nsid','name':'w:nsid','obj':nsid,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'disable', 'class':'') ,('field':'multiLevelType','name':'w:multiLevelType','obj':multiLevelType,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'编号类型', 'class':'') ,('field':'tmpl','name':'w:tmpl','obj':tmpl,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'该元素指定了一个唯一的十六进制代码,该代码可用于确定应用程序用户界面中显示该抽象编号定义的位置。', 'class':'') @@ -9856,13 +9623,11 @@ type TExcelTable=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Xmlns", "xmlns", Xmlns, ""),("Mc", "xmlns:mc", Mc, ""),("Ignorable", "mc:Ignorable", Ignorable, ""),("Xr", "xmlns:xr", Xr, ""),("Xr3", "xmlns:xr3", Xr3, ""),("Id", "id", Id, ""),("Name", "name", Name, ""),("DisplayName", "displayName", DisplayName, ""),("Ref", "ref", Ref, ""),("HeaderRowCount", "HeaderRowCount", HeaderRowCount, ""),("TotalsRowShown", "totalsRowShown", TotalsRowShown, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return array(('field':'AutoFilter','name':'autoFilter','obj':AutoFilter,'attrEx':'ref','nodeType':'','attrName':'', 'desc':'', 'class':'') ) union ExtNodes; End; @@ -9911,13 +9676,11 @@ type TTableStyle=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Name", "tableName", Name, ""),("TableStyle", "name", TableStyle, ""),("ShowFirstColumn", "showFirstColumn", ShowFirstColumn, ""),("ShowLastColumn", "showLastColumn", ShowLastColumn, ""),("ShowRowStripes", "showRowStripes", ShowRowStripes, ""),("ShowColumnStripes", "showColumnStripes", ShowColumnStripes, ""),("HeaderRowCount", "HeaderRowCount", HeaderRowCount, ""),("TotalsRowShown", "totalsRowShown", TotalsRowShown, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -9969,13 +9732,11 @@ type TBreak=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Id", "id", Id, ""),("Max", "max", Max, ""),("Man", "man", Man, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -10014,13 +9775,11 @@ type TProtect=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("Password", "password", Password, ""),("AlgorithmName", "algorithmName", AlgorithmName, ""),("HashValue", "hashValue", HashValue, ""),("SaltValue", "saltValue", SaltValue, ""),("SpinCount", "spinCount", SpinCount, ""),("Sheet", "sheet", Sheet, ""),("EditObjects", "objects", EditObjects, ""),("EditScenarios", "scenarios", EditScenarios, ""),("FormatCells", "formatCells", FormatCells, ""),("FormatColumns", "formatColumns", FormatColumns, ""),("FormatRows", "formatRows", FormatRows, ""),("InsertColumns", "insertColumns", InsertColumns, ""),("InsertRows", "insertRows", InsertRows, ""),("InsertHyperlinks", "insertHyperlinks", InsertHyperlinks, ""),("DeleteColumns", "deleteColumns", DeleteColumns, ""),("DeleteRows", "deleteRows", DeleteRows, ""),("SelectLockedCells", "selectLockedCells", SelectLockedCells, ""),("Sort", "sort", Sort, ""),("AutoFilter", "autoFilter", AutoFilter, ""),("PivotTables", "pivotTables", PivotTables, ""),("SelectUnLockedCells", "selectUnlockedCells", SelectUnLockedCells, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -10207,13 +9966,11 @@ type TCalcPr=class(NodeInfo) Function GetAttrs(); override; Begin - HandleAttrs(); return array(("CalCId", "calcId", XMLCalCId, ""),("CalcMode", "calcMode", XMLCalcMode, ""),("RefMode", "refMode", XMLRefMode, ""),("Iterate", "iterate", XMLIterate, ""),("IterateCount", "iterateCount", XMLIterateCount, ""),("IterateDelta", "iterateDelta", XMLIterateDelta, ""),("CalcOnSave", "calcOnSave", XMLCalcOnSave, ""),("FullPrecision", "fullPrecision", XMLFullPrecision, ""),("ConCurrentCalc", "conCurrentCalc", XMLConCurrentCalc, ""),("ConCurrentManualCount", "conCurrentManualCount", XMLConCurrentManualCount, "")) union ExtAttr; End; Function GetChildren(); override; Begin - HandleChildren(); return ExtNodes; End; @@ -13158,6 +12915,7 @@ Type TDocumentBody = Class(DocObject) for i:=0 to length(tbl.Data_)-1 do Begin trNode := tbl.node_.InsertEndChild('element', 'w:tr'); + trNode.InsertEndChild('element', 'w:trPr'); multiLine := false; if ifstring(tbl.Data_[i, j]) and Pos('\n', tbl.Data_[i, j]) then multiLine := true; @@ -13932,41 +13690,45 @@ Type TDocumentBody = Class(DocObject) name := pNode.GetName(); if name = 'w:p' and not ifObj(pNode.FirstChildElement('w:sectPr')) then begin - p := new TParagraph(pNode); - styleId := p.Format.Value('StyleId', 1); - if styleId <> '' and (obj := docx.StyleObject().GetStyleById(styleId)) and ifObj(obj) then + pStyle := class(TSXml).GetNode(pNode, "w:pPr/w:pStyle"); + if pStyle then begin - level := getHeadingLevel(docx, obj); - iLevel := Class(TSXml).SafeStrToIntDef(level, -1); - if iLevel+1 >= UpperHeadingLevel and iLevel+1 <= LowerHeadingLevel then Begin - //统计数字项目编号 - text := p.Text(); - if text = "" then continue; - numArr := array(); - numId := getNumPr('numId', docx, p); - ilvl := getNumPr('Level', docx, p); - if not ilvl then ilvl := 0; - if ifarray(numIds) then Begin - if ilvl >= 0 and ilvl < 10 then Begin - if not istable(numIds[numId]) then - numIds[numId] := array(0,0,0,0,0,0,0,0,0,0); - prev := numIds[numId, ilvl]; - if prev then Begin - for i:=ilvl+1 to 9 do - numIds[numId, i] := 0; + styleId := pStyle.GetAttribute('w:val'); + if styleId <> '' and (obj := docx.StyleObject().GetStyleById(styleId)) and ifObj(obj) then + begin + level := getHeadingLevel(docx, obj); + iLevel := Class(TSXml).SafeStrToIntDef(level, -1); + if iLevel+1 >= UpperHeadingLevel and iLevel+1 <= LowerHeadingLevel then Begin + //统计数字项目编号 + p := new TParagraph(pNode); + text := p.Text(); + if text = "" then continue; + numArr := array(); + numId := getNumPr('numId', docx, p); + ilvl := getNumPr('Level', docx, p); + if not ilvl then ilvl := 0; + if ifarray(numIds) then Begin + if ilvl >= 0 and ilvl < 10 then Begin + if not istable(numIds[numId]) then + numIds[numId] := array(0,0,0,0,0,0,0,0,0,0); + prev := numIds[numId, ilvl]; + if prev then Begin + for i:=ilvl+1 to 9 do + numIds[numId, i] := 0; + End; + numIds[numId, ilvl]++; + numArr := numIds[numId]; End; - numIds[numId, ilvl]++; - numArr := numIds[numId]; End; + r[ind]['Level'] := strtoint(level); + r[ind]['Paragraph'] := p; + r[ind]['Text'] := text; + r[ind]['numId'] := ifnumber(numId) ? integer(numId) : 0; //数字项目编号 + r[ind]['ilvl'] := ilvl; //级别 + r[ind]['numArr'] := numArr; //累加数字编码 + ind++; End; - r[ind]['Level'] := strtoint(level); - r[ind]['Paragraph'] := p; - r[ind]['Text'] := text; - r[ind]['numId'] := ifnumber(numId) ? integer(numId) : 0; //数字项目编号 - r[ind]['ilvl'] := ilvl; //级别 - r[ind]['numArr'] := numArr; //累加数字编码 - ind++; - End; + end end End else if false and ifarray(numIds) and name = 'w:tbl' then Begin @@ -14706,30 +14468,16 @@ Type TTable = Class(DocObject, TTableImpl) Function RowHeight(row, height); Begin if row <= 0 or row > Rows() then return; - node := node_.FirstChildElement('w:tr'); - cnt := row - 1; - while(cnt) do - begin - node := node.NextElement('w:tr'); - cnt--; - end - trnode := node.FirstChildElement("w:trPr"); - if not ifObj(trnode) then trnode := node.InsertFirstChild('element', 'w:trPr'); - node := trnode.FirstChildElement('w:trHeight'); - if not ifObj(node) then node := trnode.InsertFirstChild('element', 'w:trHeight'); + node := _getRowNode(row - 1); + node := class(TSXml).GetNode(node, 'w:trPr/w:trHeight', 'end'); + node.SetAttribute('w:hRule', 'exact'); node.SetAttribute('w:val', height); End; Function Height(row); Begin if row <= 0 or row > Rows() then return nil; - node := node_.FirstChildElement('w:tr'); - cnt := row - 1; - while(cnt) do - begin - node := node.NextElement('w:tr'); - cnt--; - end + node := _getRowNode(row - 1); obj := new TwTr(); obj.InitRootNode(node); return obj.TrPr.Value('Height'); @@ -14887,13 +14635,81 @@ Type TTable = Class(DocObject, TTableImpl) end End; + ///设置表格样式ID + ///docx: TSDocxFile对象 + ///styleId: 表格样式ID + Function SetStyleById(docx, styleId); + Begin + ret := array(); + _getTblStylePr(docx, styleId, ret); + tblPr.StyleId := styleId; + Apply(); + for i:=0 to length(ret)-1 do + begin + cnf := TOfficeObj('TwCnfStyle'); + cnf.Val := 000000000000; + cnf.FirstRow := 0; + cnf.LastRow := 0; + cnf.FirstColumn := 0; + cnf.LastColumn := 0; + cnf.OddVBand := 0; + cnf.EvenVBand := 0; + cnf.OddHBand := 0; + cnf.EvenHBand := 0; + cnf.FirstRowFirstColumn := 0; + cnf.FirstRowLastColumn := 0; + cnf.LastRowFirstColumn := 0; + cnf.LastRowLastColumn := 0; + + case ret[i] of + 'firstRow': + begin + node := _getRowNode(0); + trPr := node.FirstChild('w:trPr'); + twtrpr := TOfficeObj('TwTrPr'); + twtrpr.InitRootNode(trPr); + cnf.Val := 100000000000; + cnf.FirstRow := 1; + twtrpr.CnfStyle := cnf; + twtrpr.Update(); + end + 'lastRow': + begin + node := _getRowNode(Rows()-1); + trPr := node.FirstChild('w:trPr'); + twtrpr := TOfficeObj('TwTrPr'); + twtrpr.InitRootNode(trPr); + cnf.Val := 010000000000; + cnf.LastRow := 1; + twtrpr.CnfStyle := cnf; + twtrpr.Update(); + end + end; + end + End; + + Function _getTblStylePr(docx, id, ret); + Begin + style_obj := docx.StyleObject().GetStyleById(id); + if not ifObj(style_obj) then return; + tbl_style_pr := style_obj.Root().FirstChild('w:tblStylePr'); + while ifObj(tbl_style_pr) do + begin + wtype := tbl_style_pr.GetAttribute('w:type'); + ret[length(ret)] := wtype; + tbl_style_pr := tbl_style_pr.NextElement('w:tblStylePr'); + end + base := style_obj.Value('BasedOn'); + _getTblStylePr(docx, base, ret); + End; + Function _getRowNode(row); Begin node := node_.FirstChild('w:tr'); while row and ifObj(node) do begin row--; - node := node.NextElement(); + node := node.NextElement('w:tr'); end return node; End; diff --git a/funcext/TSOffice/TSDocxFile.tsf b/funcext/TSOffice/TSDocxFile.tsf index 0ab7e22..4940dfc 100644 --- a/funcext/TSOffice/TSDocxFile.tsf +++ b/funcext/TSOffice/TSDocxFile.tsf @@ -1,4 +1,4 @@ -// Version 1.4.8 +// Version 1.4.9 Type TSDocxFile = Class ///Version: V1.0 2022-09-20 @@ -381,6 +381,25 @@ Type TSDocxFile = Class return nil; End; + ///复制Word内容 + ///alias: string,文件目录别名 + ///fileName: string,文件名 + ///posOpt: 段落位置,0 在DOCX文件开头;-1 文件尾;N 在第N段之后;XmlNode节点对象或DocObject对象 在posOpt之后新添加图片 + ///返回: [err, TDocxCopy对象] + ///TDocxCopy.GetCopiedTable() 返回复制的对象表格数组 + ///TDocxCopy.GetCopiedParagraph() 返回复制对象的段落数组 + ///TDocxCopy.GetCopiedDrawing() 返回复制对象的图表数组 + Function InsertFile(alias, fileName, posOpt);overload; + Begin + docxObj := new TSDocxFile(); + [err, msg] := docxObj.OpenFile(alias, fileName); + if err then return array(err, msg); + copy_obj := new TDocxCopy(self, docxObj); + copy_obj.Init(); + copy_obj.Copy(posOpt); + return array(0, copy_obj); + End; + ///复制Word内容 ///docxObj: TSDocxFile对象 ///posOpt: 段落位置,0 在DOCX文件开头;-1 文件尾;N 在第N段之后;XmlNode节点对象或DocObject对象 在posOpt之后新添加图片 @@ -388,11 +407,8 @@ Type TSDocxFile = Class ///TDocxCopy.GetCopiedTable() 返回复制的对象表格数组 ///TDocxCopy.GetCopiedParagraph() 返回复制对象的段落数组 ///TDocxCopy.GetCopiedDrawing() 返回复制对象的图表数组 - Function InsertFile(alias, fileName, posOpt); + Function InsertFile(docxObj, posOpt);overload; Begin - docxObj := new TSDocxFile(); - [err, msg] := docxObj.OpenFile(alias, fileName); - if err then return array(err, msg); copy_obj := new TDocxCopy(self, docxObj); copy_obj.Init(); copy_obj.Copy(posOpt); diff --git a/funcext/TSOffice/TSExcelFile.tsf b/funcext/TSOffice/TSExcelFile.tsf index e948c47..5aa4034 100644 --- a/funcext/TSOffice/TSExcelFile.tsf +++ b/funcext/TSOffice/TSExcelFile.tsf @@ -1,4 +1,4 @@ -// Version 1.4.8 +// Version 1.4.9 Type TSExcelFile = Class ///Version: V1.0 2022-08-08 diff --git a/funcext/TSOffice/TSUtils/NodeInfo.tsf b/funcext/TSOffice/TSUtils/NodeInfo.tsf index cb29145..29906a0 100644 --- a/funcext/TSOffice/TSUtils/NodeInfo.tsf +++ b/funcext/TSOffice/TSUtils/NodeInfo.tsf @@ -17,27 +17,19 @@ public Begin return RootObj; End - + Function Update(); Begin if ifObj(RootObj) then Begin arr := Marshal(); if length(arr['attributes']) or length(arr['children']) then Begin - curNode := class(TSXml).GetNode(RootObj, NodeUri); + curNode := class(TSXml).GetNode(RootObj, NodeUri, 'end'); if ifObj(curNode) then class(TSXml).UpdateNode(curNode, arr['attributes'], arr['children']); End; End; End; - - Function HandleAttrs(); virtual; - Begin - End - - Function HandleChildren(); virtual; - Begin - End - + Function GetAttrs(); virtual; Begin return ExtAttr; @@ -258,7 +250,6 @@ public NodeName; ExtAttr; ExtNodes; - //Parent; ReplaceArr; RootObj; // xml node NodeUri:string; diff --git a/更新日志.md b/更新日志.md index 426e883..1c7663c 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,5 +1,14 @@ # 更新日志 +## 2023-10-16 + +### V1.4.9 + +#### word + +1. 新增`TSDocxFile.InsertFile`重载方法 +2. 新增`Table.SetStyle`方法 + ## 2023-9-27 ### V1.4.8