v1.6.4
This commit is contained in:
parent
f499526f04
commit
b4ef4a531c
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.3
|
// Version 1.6.4
|
||||||
Function TOfficeObj(n);
|
Function TOfficeObj(n);
|
||||||
Begin
|
Begin
|
||||||
case lowercase(n) of
|
case lowercase(n) of
|
||||||
|
|
@ -10763,15 +10763,15 @@ Type TDocComments = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
//w:pPr
|
//w:pPr
|
||||||
// 'w:pStyle', 'w:keepNext', 'w:keepLines', 'w:pageBreakBefore',
|
// 'w:pStyle', 'w:keepNext', 'w:keepLines', 'w:pageBreakBefore',
|
||||||
// 'w:framePr', 'w:widowControl', 'w:numPr', 'w:suppressLineNumbers',
|
// 'w:framePr', 'w:widowControl', 'w:numPr', 'w:suppressLineNumbers',
|
||||||
// 'w:pBdr', 'w:shd', 'w:tabs', 'w:suppressAutoHyphens', 'w:kinsoku',
|
// 'w:pBdr', 'w:shd', 'w:tabs', 'w:suppressAutoHyphens', 'w:kinsoku',
|
||||||
// 'w:wordWrap', 'w:overflowPunct', 'w:topLinePunct', 'w:autoSpaceDE',
|
// 'w:wordWrap', 'w:overflowPunct', 'w:topLinePunct', 'w:autoSpaceDE',
|
||||||
// 'w:autoSpaceDN', 'w:bidi', 'w:adjustRightInd', 'w:snapToGrid',
|
// 'w:autoSpaceDN', 'w:bidi', 'w:adjustRightInd', 'w:snapToGrid',
|
||||||
// 'w:spacing', 'w:ind', 'w:contextualSpacing', 'w:mirrorIndents',
|
// 'w:spacing', 'w:ind', 'w:contextualSpacing', 'w:mirrorIndents',
|
||||||
// 'w:suppressOverlap', 'w:jc', 'w:textDirection', 'w:textAlignment',
|
// 'w:suppressOverlap', 'w:jc', 'w:textDirection', 'w:textAlignment',
|
||||||
// 'w:textboxTightWrap', 'w:outlineLvl', 'w:divId', 'w:cnfStyle',
|
// 'w:textboxTightWrap', 'w:outlineLvl', 'w:divId', 'w:cnfStyle',
|
||||||
// 'w:rPr', 'w:sectPr', 'w:pPrChange'
|
// 'w:rPr', 'w:sectPr', 'w:pPrChange'
|
||||||
|
|
||||||
//w:p
|
//w:p
|
||||||
Type TWHyperLink = Class(TWHyperLinkImpl)
|
Type TWHyperLink = Class(TWHyperLinkImpl)
|
||||||
|
|
@ -10852,8 +10852,8 @@ Type TParagraph = Class(DocObject, TParagraphImpl)
|
||||||
///制表位TTabStops对象
|
///制表位TTabStops对象
|
||||||
///返回:TTabStops对象
|
///返回:TTabStops对象
|
||||||
//<w:tabs>
|
//<w:tabs>
|
||||||
// <w:tab w:val="left" w:pos="2160" />
|
// <w:tab w:val="left" w:pos="2160" />
|
||||||
// <w:tab w:val="left" w:pos="5040" />
|
// <w:tab w:val="left" w:pos="5040" />
|
||||||
//</w:tabs>
|
//</w:tabs>
|
||||||
Function TabStops();
|
Function TabStops();
|
||||||
Begin
|
Begin
|
||||||
|
|
@ -10952,25 +10952,25 @@ Type TParagraph = Class(DocObject, TParagraphImpl)
|
||||||
return new TRun(node);
|
return new TRun(node);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///在段落对象开头添加TRun对象
|
///在段落对象开头添加TRun对象
|
||||||
///返回TRun对象
|
///返回TRun对象
|
||||||
Function PrependRun();overload;
|
Function PrependRun();overload;
|
||||||
Begin
|
Begin
|
||||||
node := node_.FirstChildElement('w:r');
|
node := node_.FirstChildElement('w:r');
|
||||||
node := node_.InsertBeforeChild(node, 'element', 'w:r');
|
node := node_.InsertBeforeChild(node, 'element', 'w:r');
|
||||||
node.InsertFirstChild('element', 'w:rPr');
|
node.InsertFirstChild('element', 'w:rPr');
|
||||||
return new TRun(node);
|
return new TRun(node);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///在段落某个TRun对象之前添加TRun对象
|
///在段落某个TRun对象之前添加TRun对象
|
||||||
///run:TRun对象
|
///run:TRun对象
|
||||||
///返回TRun对象
|
///返回TRun对象
|
||||||
Function PrependRun(run);overload;
|
Function PrependRun(run);overload;
|
||||||
Begin
|
Begin
|
||||||
node := node_.InsertBeforeChild(run.Root(), 'element', 'w:r');
|
node := node_.InsertBeforeChild(run.Root(), 'element', 'w:r');
|
||||||
node.InsertFirstChild('element', 'w:rPr');
|
node.InsertFirstChild('element', 'w:rPr');
|
||||||
return new TRun(node);
|
return new TRun(node);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///段落中全部的修改标记(修订删除、修订插入)
|
///段落中全部的修改标记(修订删除、修订插入)
|
||||||
///返回:TRevision对象列表,array(TRevision...);
|
///返回:TRevision对象列表,array(TRevision...);
|
||||||
|
|
@ -11058,7 +11058,7 @@ Type TParagraph = Class(DocObject, TParagraphImpl)
|
||||||
///判断是否为空段落
|
///判断是否为空段落
|
||||||
///返回: bool
|
///返回: bool
|
||||||
Function Empty();
|
Function Empty();
|
||||||
Begin
|
Begin
|
||||||
if ifObj(node_) then
|
if ifObj(node_) then
|
||||||
begin
|
begin
|
||||||
if ifObj(node_.FirstChildElement("w:r")) then return false;
|
if ifObj(node_.FirstChildElement("w:r")) then return false;
|
||||||
|
|
@ -11073,7 +11073,7 @@ Type TParagraph = Class(DocObject, TParagraphImpl)
|
||||||
return true;
|
return true;
|
||||||
end
|
end
|
||||||
return false;
|
return false;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///获取当前段落的上一个段落
|
///获取当前段落的上一个段落
|
||||||
///返回:TParagraph对象
|
///返回:TParagraph对象
|
||||||
|
|
@ -11432,8 +11432,8 @@ Type TPicture = Class(DocObject, TPictureImpl)
|
||||||
maxY := 23.0;//垂直方向23cm
|
maxY := 23.0;//垂直方向23cm
|
||||||
imageW := image.Width() / 28.346 * ETU;
|
imageW := image.Width() / 28.346 * ETU;
|
||||||
imageH := image.Height() / 28.346 * ETU;
|
imageH := image.Height() / 28.346 * ETU;
|
||||||
if Width <= 0 and Height <= 0 then Begin //图像缺省大小
|
if Width <= 0 and Height <= 0 then Begin //图像缺省大小
|
||||||
widthVal := imageW;
|
widthVal := imageW;
|
||||||
heightVal := imageH;
|
heightVal := imageH;
|
||||||
End
|
End
|
||||||
else Begin //用户设置了图片尺寸
|
else Begin //用户设置了图片尺寸
|
||||||
|
|
@ -11471,7 +11471,7 @@ Type TPicture = Class(DocObject, TPictureImpl)
|
||||||
widthVal *= ratio;
|
widthVal *= ratio;
|
||||||
End;
|
End;
|
||||||
//println('w={}-{},maxx={}, h={}-{},maxh={},ratio={}',integer(imageW),integer(widthVal),15 * ETU, integer(imageH),integer(heightVal),23 * ETU,ratio);
|
//println('w={}-{},maxx={}, h={}-{},maxh={},ratio={}',integer(imageW),integer(widthVal),15 * ETU, integer(imageH),integer(heightVal),23 * ETU,ratio);
|
||||||
return array(integer(widthVal), integer(heightVal));
|
return array(integer(widthVal), integer(heightVal));
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Image;//图片内容(Binary)
|
Image;//图片内容(Binary)
|
||||||
|
|
@ -11821,10 +11821,10 @@ private
|
||||||
|
|
||||||
Function getLegendPosition(t);
|
Function getLegendPosition(t);
|
||||||
Begin
|
Begin
|
||||||
m := array("bottom": "b",
|
m := array("bottom": "b",
|
||||||
"left": "l",
|
"left": "l",
|
||||||
"right": "r",
|
"right": "r",
|
||||||
"top": "t",
|
"top": "t",
|
||||||
"top_right": "tr");
|
"top_right": "tr");
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
@ -11982,120 +11982,120 @@ private
|
||||||
Function chartValAxCrossBetween(t);
|
Function chartValAxCrossBetween(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'area': 'midCat',
|
'area': 'midCat',
|
||||||
'areastacked': 'midCat',
|
'areastacked': 'midCat',
|
||||||
'areapercentstacked': 'midCat',
|
'areapercentstacked': 'midCat',
|
||||||
'area3d': 'midCat',
|
'area3d': 'midCat',
|
||||||
'area3dstacked': 'midCat',
|
'area3dstacked': 'midCat',
|
||||||
'area3dpercentstacked': 'midCat',
|
'area3dpercentstacked': 'midCat',
|
||||||
'bar': 'between',
|
'bar': 'between',
|
||||||
'barstacked': 'between',
|
'barstacked': 'between',
|
||||||
'barpercentstacked': 'between',
|
'barpercentstacked': 'between',
|
||||||
'bar3dclustered': 'between',
|
'bar3dclustered': 'between',
|
||||||
'bar3dstacked': 'between',
|
'bar3dstacked': 'between',
|
||||||
'bar3dpercentstacked': 'between',
|
'bar3dpercentstacked': 'between',
|
||||||
'bar3dconeclustered': 'between',
|
'bar3dconeclustered': 'between',
|
||||||
'bar3dconestacked': 'between',
|
'bar3dconestacked': 'between',
|
||||||
'bar3dconepercentstacked': 'between',
|
'bar3dconepercentstacked': 'between',
|
||||||
'bar3dpyramidclustered': 'between',
|
'bar3dpyramidclustered': 'between',
|
||||||
'bar3dpyramidstacked': 'between',
|
'bar3dpyramidstacked': 'between',
|
||||||
'bar3dpyramidpercentstacked': 'between',
|
'bar3dpyramidpercentstacked': 'between',
|
||||||
'bar3dcylinderclustered': 'between',
|
'bar3dcylinderclustered': 'between',
|
||||||
'bar3dcylinderstacked': 'between',
|
'bar3dcylinderstacked': 'between',
|
||||||
'bar3dcylinderpercentstacked': 'between',
|
'bar3dcylinderpercentstacked': 'between',
|
||||||
'col': 'between',
|
'col': 'between',
|
||||||
'colstacked': 'between',
|
'colstacked': 'between',
|
||||||
'colpercentstacked': 'between',
|
'colpercentstacked': 'between',
|
||||||
'col3d': 'between',
|
'col3d': 'between',
|
||||||
'col3dclustered': 'between',
|
'col3dclustered': 'between',
|
||||||
'col3dstacked': 'between',
|
'col3dstacked': 'between',
|
||||||
'col3dpercentstacked': 'between',
|
'col3dpercentstacked': 'between',
|
||||||
'col3dcone': 'between',
|
'col3dcone': 'between',
|
||||||
'col3dconeclustered': 'between',
|
'col3dconeclustered': 'between',
|
||||||
'col3dconestacked': 'between',
|
'col3dconestacked': 'between',
|
||||||
'col3dconepercentstacked': 'between',
|
'col3dconepercentstacked': 'between',
|
||||||
'col3dpyramid': 'between',
|
'col3dpyramid': 'between',
|
||||||
'col3dpyramidclustered': 'between',
|
'col3dpyramidclustered': 'between',
|
||||||
'col3dpyramidstacked': 'between',
|
'col3dpyramidstacked': 'between',
|
||||||
'col3dpyramidpercentstacked': 'between',
|
'col3dpyramidpercentstacked': 'between',
|
||||||
'col3dcylinder': 'between',
|
'col3dcylinder': 'between',
|
||||||
'col3dcylinderclustered': 'between',
|
'col3dcylinderclustered': 'between',
|
||||||
'col3dcylinderstacked': 'between',
|
'col3dcylinderstacked': 'between',
|
||||||
'col3dcylinderpercentstacked': 'between',
|
'col3dcylinderpercentstacked': 'between',
|
||||||
'doughnut': 'between',
|
'doughnut': 'between',
|
||||||
'line': 'between',
|
'line': 'between',
|
||||||
'pie': 'between',
|
'pie': 'between',
|
||||||
'pie3d': 'between',
|
'pie3d': 'between',
|
||||||
'pieofpiechart': 'between',
|
'pieofpiechart': 'between',
|
||||||
'barofpiechart': 'between',
|
'barofpiechart': 'between',
|
||||||
'radar': 'between',
|
'radar': 'between',
|
||||||
'scatter': 'between',
|
'scatter': 'between',
|
||||||
'surface3d': 'midCat',
|
'surface3d': 'midCat',
|
||||||
'wireframesurface3d': 'midCat',
|
'wireframesurface3d': 'midCat',
|
||||||
'contour': 'midCat',
|
'contour': 'midCat',
|
||||||
'wireframecontour': 'midCat',
|
'wireframecontour': 'midCat',
|
||||||
'bubble': 'midCat',
|
'bubble': 'midCat',
|
||||||
'bubble3d': 'midCat');
|
'bubble3d': 'midCat');
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function chartValAxNumFmtFormatCode(t);
|
Function chartValAxNumFmtFormatCode(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'area': 'General',
|
'area': 'General',
|
||||||
'areastacked': 'General',
|
'areastacked': 'General',
|
||||||
'areapercentstacked': '0%',
|
'areapercentstacked': '0%',
|
||||||
'area3d': 'General',
|
'area3d': 'General',
|
||||||
'area3dstacked': 'General',
|
'area3dstacked': 'General',
|
||||||
'area3dpercentstacked': '0%',
|
'area3dpercentstacked': '0%',
|
||||||
'bar': 'General',
|
'bar': 'General',
|
||||||
'barstacked': 'General',
|
'barstacked': 'General',
|
||||||
'barpercentstacked': '0%',
|
'barpercentstacked': '0%',
|
||||||
'bar3dclustered': 'General',
|
'bar3dclustered': 'General',
|
||||||
'bar3dstacked': 'General',
|
'bar3dstacked': 'General',
|
||||||
'bar3dpercentstacked': '0%',
|
'bar3dpercentstacked': '0%',
|
||||||
'bar3dconeclustered': 'General',
|
'bar3dconeclustered': 'General',
|
||||||
'bar3dconestacked': 'General',
|
'bar3dconestacked': 'General',
|
||||||
'bar3dconepercentstacked': '0%',
|
'bar3dconepercentstacked': '0%',
|
||||||
'bar3dpyramidclustered': 'General',
|
'bar3dpyramidclustered': 'General',
|
||||||
'bar3dpyramidstacked': 'General',
|
'bar3dpyramidstacked': 'General',
|
||||||
'bar3dpyramidpercentstacked': '0%',
|
'bar3dpyramidpercentstacked': '0%',
|
||||||
'bar3dcylinderclustered': 'General',
|
'bar3dcylinderclustered': 'General',
|
||||||
'bar3dcylinderstacked': 'General',
|
'bar3dcylinderstacked': 'General',
|
||||||
'bar3dcylinderpercentstacked': '0%',
|
'bar3dcylinderpercentstacked': '0%',
|
||||||
'col': 'General',
|
'col': 'General',
|
||||||
'colstacked': 'General',
|
'colstacked': 'General',
|
||||||
'colpercentstacked': '0%',
|
'colpercentstacked': '0%',
|
||||||
'col3d': 'General',
|
'col3d': 'General',
|
||||||
'col3dclustered': 'General',
|
'col3dclustered': 'General',
|
||||||
'col3dstacked': 'General',
|
'col3dstacked': 'General',
|
||||||
'col3dpercentstacked': '0%',
|
'col3dpercentstacked': '0%',
|
||||||
'col3dcone': 'General',
|
'col3dcone': 'General',
|
||||||
'col3dconeclustered': 'General',
|
'col3dconeclustered': 'General',
|
||||||
'col3dconestacked': 'General',
|
'col3dconestacked': 'General',
|
||||||
'col3dconepercentstacked': '0%',
|
'col3dconepercentstacked': '0%',
|
||||||
'col3dpyramid': 'General',
|
'col3dpyramid': 'General',
|
||||||
'col3dpyramidclustered': 'General',
|
'col3dpyramidclustered': 'General',
|
||||||
'col3dpyramidstacked': 'General',
|
'col3dpyramidstacked': 'General',
|
||||||
'col3dpyramidpercentstacked': '0%',
|
'col3dpyramidpercentstacked': '0%',
|
||||||
'col3dcylinder': 'General',
|
'col3dcylinder': 'General',
|
||||||
'col3dcylinderclustered': 'General',
|
'col3dcylinderclustered': 'General',
|
||||||
'col3dcylinderstacked': 'General',
|
'col3dcylinderstacked': 'General',
|
||||||
'col3dcylinderpercentstacked': '0%',
|
'col3dcylinderpercentstacked': '0%',
|
||||||
'doughnut': 'General',
|
'doughnut': 'General',
|
||||||
'line': 'General',
|
'line': 'General',
|
||||||
'pie': 'General',
|
'pie': 'General',
|
||||||
'pie3d': 'General',
|
'pie3d': 'General',
|
||||||
'pieofpiechart': 'General',
|
'pieofpiechart': 'General',
|
||||||
'barofpiechart': 'General',
|
'barofpiechart': 'General',
|
||||||
'radar': 'General',
|
'radar': 'General',
|
||||||
'scatter': 'General',
|
'scatter': 'General',
|
||||||
'surface3d': 'General',
|
'surface3d': 'General',
|
||||||
'wireframesurface3d': 'General',
|
'wireframesurface3d': 'General',
|
||||||
'contour': 'General',
|
'contour': 'General',
|
||||||
'wireframecontour': 'General',
|
'wireframecontour': 'General',
|
||||||
'bubble': 'General',
|
'bubble': 'General',
|
||||||
'bubble3d': 'General');
|
'bubble3d': 'General');
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
@ -12354,26 +12354,26 @@ private
|
||||||
Function getSharp(t);
|
Function getSharp(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'bar3dconeclustered': 'cone',
|
'bar3dconeclustered': 'cone',
|
||||||
'bar3dconestacked': 'cone',
|
'bar3dconestacked': 'cone',
|
||||||
'bar3dconepercentstacked': 'cone',
|
'bar3dconepercentstacked': 'cone',
|
||||||
'bar3dpyramidclustered': 'pyramid',
|
'bar3dpyramidclustered': 'pyramid',
|
||||||
'bar3dpyramidstacked': 'pyramid',
|
'bar3dpyramidstacked': 'pyramid',
|
||||||
'bar3dpyramidpercentstacked': 'pyramid',
|
'bar3dpyramidpercentstacked': 'pyramid',
|
||||||
'bar3dcylinderclustered': 'cylinder',
|
'bar3dcylinderclustered': 'cylinder',
|
||||||
'bar3dcylinderstacked': 'cylinder',
|
'bar3dcylinderstacked': 'cylinder',
|
||||||
'bar3dcylinderpercentstacked': 'cylinder',
|
'bar3dcylinderpercentstacked': 'cylinder',
|
||||||
'col3dcone': 'cone',
|
'col3dcone': 'cone',
|
||||||
'col3dconeclustered': 'cone',
|
'col3dconeclustered': 'cone',
|
||||||
'col3dconestacked': 'cone',
|
'col3dconestacked': 'cone',
|
||||||
'col3dconepercentstacked': 'cone',
|
'col3dconepercentstacked': 'cone',
|
||||||
'col3dpyramid': 'pyramid',
|
'col3dpyramid': 'pyramid',
|
||||||
'col3dpyramidclustered': 'pyramid',
|
'col3dpyramidclustered': 'pyramid',
|
||||||
'col3dpyramidstacked': 'pyramid',
|
'col3dpyramidstacked': 'pyramid',
|
||||||
'col3dpyramidpercentstacked': 'pyramid',
|
'col3dpyramidpercentstacked': 'pyramid',
|
||||||
'col3dcylinder': 'cylinder',
|
'col3dcylinder': 'cylinder',
|
||||||
'col3dcylinderclustered': 'cylinder',
|
'col3dcylinderclustered': 'cylinder',
|
||||||
'col3dcylinderstacked': 'cylinder',
|
'col3dcylinderstacked': 'cylinder',
|
||||||
'col3dcylinderpercentstacked': 'cylinder');
|
'col3dcylinderpercentstacked': 'cylinder');
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
@ -12429,9 +12429,9 @@ private
|
||||||
Function getVaryColors(t);
|
Function getVaryColors(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'barstacked': 100,
|
'barstacked': 100,
|
||||||
'barpercentstacked': 100,
|
'barpercentstacked': 100,
|
||||||
'colstacked': 100,
|
'colstacked': 100,
|
||||||
'colpercentstacked': 100
|
'colpercentstacked': 100
|
||||||
);
|
);
|
||||||
return m[t];
|
return m[t];
|
||||||
|
|
@ -12440,88 +12440,88 @@ private
|
||||||
Function getGrouping(t);
|
Function getGrouping(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'area': 'standard',
|
'area': 'standard',
|
||||||
'areastacked': 'stacked',
|
'areastacked': 'stacked',
|
||||||
'areapercentstacked': 'percentStacked',
|
'areapercentstacked': 'percentStacked',
|
||||||
'area3d': 'standard',
|
'area3d': 'standard',
|
||||||
'area3dstacked': 'stacked',
|
'area3dstacked': 'stacked',
|
||||||
'area3dpercentstacked': 'percentStacked',
|
'area3dpercentstacked': 'percentStacked',
|
||||||
'bar': 'clustered',
|
'bar': 'clustered',
|
||||||
'barstacked': 'stacked',
|
'barstacked': 'stacked',
|
||||||
'barpercentstacked': 'percentStacked',
|
'barpercentstacked': 'percentStacked',
|
||||||
'bar3dclustered': 'clustered',
|
'bar3dclustered': 'clustered',
|
||||||
'bar3dstacked': 'stacked',
|
'bar3dstacked': 'stacked',
|
||||||
'bar3dpercentstacked': 'percentStacked',
|
'bar3dpercentstacked': 'percentStacked',
|
||||||
'bar3dconeclustered': 'clustered',
|
'bar3dconeclustered': 'clustered',
|
||||||
'bar3dconestacked': 'stacked',
|
'bar3dconestacked': 'stacked',
|
||||||
'bar3dconepercentstacked': 'percentStacked',
|
'bar3dconepercentstacked': 'percentStacked',
|
||||||
'bar3dpyramidclustered': 'clustered',
|
'bar3dpyramidclustered': 'clustered',
|
||||||
'bar3dpyramidstacked': 'stacked',
|
'bar3dpyramidstacked': 'stacked',
|
||||||
'bar3dpyramidpercentstacked': 'percentStacked',
|
'bar3dpyramidpercentstacked': 'percentStacked',
|
||||||
'bar3dcylinderclustered': 'clustered',
|
'bar3dcylinderclustered': 'clustered',
|
||||||
'bar3dcylinderstacked': 'stacked',
|
'bar3dcylinderstacked': 'stacked',
|
||||||
'bar3dcylinderpercentstacked': 'percentStacked',
|
'bar3dcylinderpercentstacked': 'percentStacked',
|
||||||
'col': 'clustered',
|
'col': 'clustered',
|
||||||
'colstacked': 'stacked',
|
'colstacked': 'stacked',
|
||||||
'colpercentstacked': 'percentStacked',
|
'colpercentstacked': 'percentStacked',
|
||||||
'col3d': 'standard',
|
'col3d': 'standard',
|
||||||
'col3dclustered': 'clustered',
|
'col3dclustered': 'clustered',
|
||||||
'col3dstacked': 'stacked',
|
'col3dstacked': 'stacked',
|
||||||
'col3dpercentstacked': 'percentStacked',
|
'col3dpercentstacked': 'percentStacked',
|
||||||
'col3dcone': 'standard',
|
'col3dcone': 'standard',
|
||||||
'col3dconeclustered': 'clustered',
|
'col3dconeclustered': 'clustered',
|
||||||
'col3dconestacked': 'stacked',
|
'col3dconestacked': 'stacked',
|
||||||
'col3dconepercentstacked': 'percentStacked',
|
'col3dconepercentstacked': 'percentStacked',
|
||||||
'col3dpyramid': 'standard',
|
'col3dpyramid': 'standard',
|
||||||
'col3dpyramidclustered': 'clustered',
|
'col3dpyramidclustered': 'clustered',
|
||||||
'col3dpyramidstacked': 'stacked',
|
'col3dpyramidstacked': 'stacked',
|
||||||
'col3dpyramidpercentstacked': 'percentStacked',
|
'col3dpyramidpercentstacked': 'percentStacked',
|
||||||
'col3dcylinder': 'standard',
|
'col3dcylinder': 'standard',
|
||||||
'col3dcylinderclustered': 'clustered',
|
'col3dcylinderclustered': 'clustered',
|
||||||
'col3dcylinderstacked': 'stacked',
|
'col3dcylinderstacked': 'stacked',
|
||||||
'col3dcylinderpercentstacked': 'percentStacked',
|
'col3dcylinderpercentstacked': 'percentStacked',
|
||||||
'line': 'standard');
|
'line': 'standard');
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function getBarDir(t);
|
Function getBarDir(t);
|
||||||
Begin
|
Begin
|
||||||
m := array(
|
m := array(
|
||||||
'bar': 'bar',
|
'bar': 'bar',
|
||||||
'barstacked': 'bar',
|
'barstacked': 'bar',
|
||||||
'barpercentstacked': 'bar',
|
'barpercentstacked': 'bar',
|
||||||
'bar3dclustered': 'bar',
|
'bar3dclustered': 'bar',
|
||||||
'bar3dstacked': 'bar',
|
'bar3dstacked': 'bar',
|
||||||
'bar3dpercentstacked': 'bar',
|
'bar3dpercentstacked': 'bar',
|
||||||
'bar3dconeclustered': 'bar',
|
'bar3dconeclustered': 'bar',
|
||||||
'bar3dconestacked': 'bar',
|
'bar3dconestacked': 'bar',
|
||||||
'bar3dconepercentstacked': 'bar',
|
'bar3dconepercentstacked': 'bar',
|
||||||
'bar3dpyramidclustered': 'bar',
|
'bar3dpyramidclustered': 'bar',
|
||||||
'bar3dpyramidstacked': 'bar',
|
'bar3dpyramidstacked': 'bar',
|
||||||
'bar3dpyramidpercentstacked': 'bar',
|
'bar3dpyramidpercentstacked': 'bar',
|
||||||
'bar3dcylinderclustered': 'bar',
|
'bar3dcylinderclustered': 'bar',
|
||||||
'bar3dcylinderstacked': 'bar',
|
'bar3dcylinderstacked': 'bar',
|
||||||
'bar3dcylinderpercentstacked': 'bar',
|
'bar3dcylinderpercentstacked': 'bar',
|
||||||
'col': 'col',
|
'col': 'col',
|
||||||
'colstacked': 'col',
|
'colstacked': 'col',
|
||||||
'colpercentstacked': 'col',
|
'colpercentstacked': 'col',
|
||||||
'col3d': 'col',
|
'col3d': 'col',
|
||||||
'col3dclustered': 'col',
|
'col3dclustered': 'col',
|
||||||
'col3dstacked': 'col',
|
'col3dstacked': 'col',
|
||||||
'col3dpercentstacked': 'col',
|
'col3dpercentstacked': 'col',
|
||||||
'col3dcone': 'col',
|
'col3dcone': 'col',
|
||||||
'col3dconestacked': 'col',
|
'col3dconestacked': 'col',
|
||||||
'col3dconeclustered': 'col',
|
'col3dconeclustered': 'col',
|
||||||
'col3dconepercentstacked': 'col',
|
'col3dconepercentstacked': 'col',
|
||||||
'col3dpyramid': 'col',
|
'col3dpyramid': 'col',
|
||||||
'col3dpyramidclustered': 'col',
|
'col3dpyramidclustered': 'col',
|
||||||
'col3dpyramidstacked': 'col',
|
'col3dpyramidstacked': 'col',
|
||||||
'col3dpyramidpercentstacked': 'col',
|
'col3dpyramidpercentstacked': 'col',
|
||||||
'col3dcylinder': 'col',
|
'col3dcylinder': 'col',
|
||||||
'col3dcylinderclustered': 'col',
|
'col3dcylinderclustered': 'col',
|
||||||
'col3dcylinderstacked': 'col',
|
'col3dcylinderstacked': 'col',
|
||||||
'col3dcylinderpercentstacked': 'col',
|
'col3dcylinderpercentstacked': 'col',
|
||||||
'line': 'standard');
|
'line': 'standard');
|
||||||
return m[t];
|
return m[t];
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
@ -12697,7 +12697,7 @@ Type TSectPr = Class
|
||||||
|
|
||||||
LineRatio := 1.0;
|
LineRatio := 1.0;
|
||||||
if ifObj(pPr) then Begin
|
if ifObj(pPr) then Begin
|
||||||
if pPr.LineSpacingRule = 'exact' and pPr.LineSpacing then //固定行距
|
if pPr.LineSpacingRule = 'exact' and pPr.LineSpacing then //固定行距
|
||||||
defaultLineHeight := pPr.LineSpacing;
|
defaultLineHeight := pPr.LineSpacing;
|
||||||
else if pPr.LineSpacing then Begin
|
else if pPr.LineSpacing then Begin
|
||||||
LineRatio := pPr.LineSpacing / 240;
|
LineRatio := pPr.LineSpacing / 240;
|
||||||
|
|
@ -12936,13 +12936,13 @@ Type TDocumentBody = Class(DocObject)
|
||||||
return r;
|
return r;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///word最后一个段落
|
///word最后一个段落
|
||||||
///返回:TParagraph对象
|
///返回:TParagraph对象
|
||||||
Function LastParagraph();
|
Function LastParagraph();
|
||||||
Begin
|
Begin
|
||||||
node := node_.LastChildElement('w:p');
|
node := node_.LastChildElement('w:p');
|
||||||
return ifObj(node) ? new TParagraph(node) : nil;
|
return ifObj(node) ? new TParagraph(node) : nil;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///添加新段落
|
///添加新段落
|
||||||
///paragraph: TParagraph对象
|
///paragraph: TParagraph对象
|
||||||
|
|
@ -12961,7 +12961,7 @@ Type TDocumentBody = Class(DocObject)
|
||||||
_set_lastParagraph_(posOpt, p.node_);//设置最后一个段落
|
_set_lastParagraph_(posOpt, p.node_);//设置最后一个段落
|
||||||
return p;
|
return p;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///复制w:p节点内容
|
///复制w:p节点内容
|
||||||
///paragraphObj: TParagraph对象
|
///paragraphObj: TParagraph对象
|
||||||
///posOpt: 段落位置,0 在DOCX文件开头;-1 文件尾;N 在第N段之后;DocumentPart对象 在posOpt之后新添加段落
|
///posOpt: 段落位置,0 在DOCX文件开头;-1 文件尾;N 在第N段之后;DocumentPart对象 在posOpt之后新添加段落
|
||||||
|
|
@ -13111,14 +13111,14 @@ Type TDocumentBody = Class(DocObject)
|
||||||
End;
|
End;
|
||||||
defaultpPr := defaultParagraph.pPr.Marshal();
|
defaultpPr := defaultParagraph.pPr.Marshal();
|
||||||
defaultrPr := defaultParagraph.pPr.rPr.Marshal();
|
defaultrPr := defaultParagraph.pPr.rPr.Marshal();
|
||||||
|
|
||||||
for i:=0 to length(tbl.Data_)-1 do Begin
|
for i:=0 to length(tbl.Data_)-1 do Begin
|
||||||
trNode := tbl.node_.InsertEndChild('element', 'w:tr');
|
trNode := tbl.node_.InsertEndChild('element', 'w:tr');
|
||||||
trNode.InsertEndChild('element', 'w:trPr');
|
trNode.InsertEndChild('element', 'w:trPr');
|
||||||
multiLine := false;
|
multiLine := false;
|
||||||
if ifstring(tbl.Data_[i, j]) and Pos('\n', tbl.Data_[i, j]) then
|
|
||||||
multiLine := true;
|
|
||||||
for j:=0 to tbl.colCount_-1 do Begin
|
for j:=0 to tbl.colCount_-1 do Begin
|
||||||
|
if ifstring(tbl.Data_[i, j]) and Pos('\n', tbl.Data_[i, j]) then
|
||||||
|
multiLine := true;
|
||||||
//对象太多的话,对象效率奇慢,优化掉(性能可能相差50倍)
|
//对象太多的话,对象效率奇慢,优化掉(性能可能相差50倍)
|
||||||
if 0 then Begin
|
if 0 then Begin
|
||||||
tc := new TCell();
|
tc := new TCell();
|
||||||
|
|
@ -14196,9 +14196,9 @@ Type TDocSection = Class(DocObject, TDocSectionImpl)
|
||||||
|
|
||||||
///返回指定页眉
|
///返回指定页眉
|
||||||
///type:页眉类型,(default、even、first)
|
///type:页眉类型,(default、even、first)
|
||||||
///default, Header for odd pages or all if no even header.
|
///default, Header for odd pages or all if no even header.
|
||||||
///first, Header for first page of section.
|
///first, Header for first page of section.
|
||||||
///even, Header for even pages of recto/verso section.
|
///even, Header for even pages of recto/verso section.
|
||||||
Function Header(type);
|
Function Header(type);
|
||||||
Begin
|
Begin
|
||||||
return _getHeaderFooter('w:headerReference', type);
|
return _getHeaderFooter('w:headerReference', type);
|
||||||
|
|
@ -14206,9 +14206,9 @@ Type TDocSection = Class(DocObject, TDocSectionImpl)
|
||||||
|
|
||||||
///返回指定页脚
|
///返回指定页脚
|
||||||
///type:页眉类型,(default、even、first)
|
///type:页眉类型,(default、even、first)
|
||||||
///default, Header for odd pages or all if no even header.
|
///default, Header for odd pages or all if no even header.
|
||||||
///first, Header for first page of section.
|
///first, Header for first page of section.
|
||||||
///even, Header for even pages of recto/verso section.
|
///even, Header for even pages of recto/verso section.
|
||||||
Function Footer(type);
|
Function Footer(type);
|
||||||
Begin
|
Begin
|
||||||
return _getHeaderFooter('w:footerReference', type);
|
return _getHeaderFooter('w:footerReference', type);
|
||||||
|
|
@ -14216,9 +14216,9 @@ Type TDocSection = Class(DocObject, TDocSectionImpl)
|
||||||
|
|
||||||
///添加页眉
|
///添加页眉
|
||||||
///type:页眉类型,(default、even、first)
|
///type:页眉类型,(default、even、first)
|
||||||
///default, Header for odd pages or all if no even header.
|
///default, Header for odd pages or all if no even header.
|
||||||
///first, Header for first page of section.
|
///first, Header for first page of section.
|
||||||
///even, Header for even pages of recto/verso section.
|
///even, Header for even pages of recto/verso section.
|
||||||
Function AddHeader(type);
|
Function AddHeader(type);
|
||||||
Begin
|
Begin
|
||||||
return _AddHeaderFooter('header', (ifNil(type) or type = '') ? 'default' : type);
|
return _AddHeaderFooter('header', (ifNil(type) or type = '') ? 'default' : type);
|
||||||
|
|
@ -14226,9 +14226,9 @@ Type TDocSection = Class(DocObject, TDocSectionImpl)
|
||||||
|
|
||||||
///添加页脚
|
///添加页脚
|
||||||
///type:页眉类型,(default、even、first)
|
///type:页眉类型,(default、even、first)
|
||||||
///default, Header for odd pages or all if no even header.
|
///default, Header for odd pages or all if no even header.
|
||||||
///first, Header for first page of section.
|
///first, Header for first page of section.
|
||||||
///even, Header for even pages of recto/verso section.
|
///even, Header for even pages of recto/verso section.
|
||||||
Function AddFooter(type);
|
Function AddFooter(type);
|
||||||
Begin
|
Begin
|
||||||
return _AddHeaderFooter('footer', (ifNil(type) or type = '') ? 'default' : type);
|
return _AddHeaderFooter('footer', (ifNil(type) or type = '') ? 'default' : type);
|
||||||
|
|
@ -14358,6 +14358,11 @@ Type TTextBox = Class(TDocumentBody, TTextBoxImpl)
|
||||||
class(TSXml).UpdateNode(NodeEx_, data[0]['attributes'], data[0]['children']);
|
class(TSXml).UpdateNode(NodeEx_, data[0]['attributes'], data[0]['children']);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Function Clear();
|
||||||
|
Begin
|
||||||
|
if ifObj(node_) then node_.DeleteChildren();
|
||||||
|
End;
|
||||||
|
|
||||||
pNode_;//<w:p>
|
pNode_;//<w:p>
|
||||||
NodeEx_;//w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:txbx/wps:txbxContent
|
NodeEx_;//w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:txbx/wps:txbxContent
|
||||||
|
|
@ -14772,14 +14777,14 @@ Type TTable = Class(DocObject, TTableImpl)
|
||||||
End;
|
End;
|
||||||
|
|
||||||
/// 设置行高
|
/// 设置行高
|
||||||
Function RowHeight(row, height);
|
Function RowHeight(row, height);
|
||||||
Begin
|
Begin
|
||||||
if row <= 0 or row > Rows() then return;
|
if row <= 0 or row > Rows() then return;
|
||||||
node := _getRowNode(row - 1);
|
node := _getRowNode(row - 1);
|
||||||
node := class(TSXml).GetNode(node, 'w:trPr/w:trHeight', 'end');
|
node := class(TSXml).GetNode(node, 'w:trPr/w:trHeight', 'end');
|
||||||
node.SetAttribute('w:hRule', 'exact');
|
node.SetAttribute('w:hRule', 'exact');
|
||||||
node.SetAttribute('w:val', height);
|
node.SetAttribute('w:val', height);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function Height(row);
|
Function Height(row);
|
||||||
Begin
|
Begin
|
||||||
|
|
@ -15248,11 +15253,11 @@ End;
|
||||||
|
|
||||||
|
|
||||||
//w:style
|
//w:style
|
||||||
// 'w:name', 'w:aliases', 'w:basedOn', 'w:next', 'w:link',
|
// 'w:name', 'w:aliases', 'w:basedOn', 'w:next', 'w:link',
|
||||||
// 'w:autoRedefine', 'w:hidden', 'w:uiPriority', 'w:semiHidden',
|
// 'w:autoRedefine', 'w:hidden', 'w:uiPriority', 'w:semiHidden',
|
||||||
// 'w:unhideWhenUsed', 'w:qFormat', 'w:locked', 'w:personal',
|
// 'w:unhideWhenUsed', 'w:qFormat', 'w:locked', 'w:personal',
|
||||||
// 'w:personalCompose', 'w:personalReply', 'w:rsid', 'w:pPr', 'w:rPr',
|
// 'w:personalCompose', 'w:personalReply', 'w:rsid', 'w:pPr', 'w:rPr',
|
||||||
// 'w:tblPr', 'w:trPr', 'w:tcPr', 'w:tblStylePr'
|
// 'w:tblPr', 'w:trPr', 'w:tcPr', 'w:tblStylePr'
|
||||||
Type TDocxStyle = Class(TDocxStyleImpl)
|
Type TDocxStyle = Class(TDocxStyleImpl)
|
||||||
Function Create(); overload;
|
Function Create(); overload;
|
||||||
Begin
|
Begin
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.3
|
// Version 1.6.4
|
||||||
Type TSDocxFile = Class
|
Type TSDocxFile = Class
|
||||||
///Version: V1.0 2022-09-20
|
///Version: V1.0 2022-09-20
|
||||||
///适用于 Microsoft Word docx格式文件
|
///适用于 Microsoft Word docx格式文件
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.3
|
// Version 1.6.4
|
||||||
Type TSXlsxFile = Class
|
Type TSXlsxFile = Class
|
||||||
///Version: V1.0 2022-08-08
|
///Version: V1.0 2022-08-08
|
||||||
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
|
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue