v1.7.8
This commit is contained in:
parent
93533c41a0
commit
39b7549665
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.7.7
|
// Version 1.7.8
|
||||||
Function TOfficeObj(n);
|
Function TOfficeObj(n);
|
||||||
Begin
|
Begin
|
||||||
case lowercase(n) of
|
case lowercase(n) of
|
||||||
|
|
@ -11559,8 +11559,8 @@ Type TPicture = Class(DocObject, TPictureImpl)
|
||||||
Descr;
|
Descr;
|
||||||
Width;//厘米
|
Width;//厘米
|
||||||
Height;//厘米
|
Height;//厘米
|
||||||
CanvasWidth;
|
CanvasWidth;
|
||||||
CanvasHeight;
|
CanvasHeight;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Type TChart = Class(TChartImpl)
|
Type TChart = Class(TChartImpl)
|
||||||
|
|
@ -13461,7 +13461,6 @@ Type TDocumentBody = Class(DocObject)
|
||||||
p.pPr.NewChildNode( array("field":"", "name":"w:sectPr", "obj":section, "attrEx":"", "nodeType":"") );
|
p.pPr.NewChildNode( array("field":"", "name":"w:sectPr", "obj":section, "attrEx":"", "nodeType":"") );
|
||||||
p := AddParagraph(p, posOpt, '');//段落对象
|
p := AddParagraph(p, posOpt, '');//段落对象
|
||||||
sec := new TDocSection(p.node_, -2, zipfile_);
|
sec := new TDocSection(p.node_, -2, zipfile_);
|
||||||
|
|
||||||
sec.NodeUri := 'w:pPr/w:sectPr';
|
sec.NodeUri := 'w:pPr/w:sectPr';
|
||||||
return sec;
|
return sec;
|
||||||
End;
|
End;
|
||||||
|
|
@ -14207,9 +14206,9 @@ Type TDocumentBody = Class(DocObject)
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
zipfile_;
|
[weakref]zipfile_;
|
||||||
lastParagraph_;
|
lastParagraph_;
|
||||||
document_;
|
[weakref]document_;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Type TDocHeaderFooter = Class(TDocumentBody)
|
Type TDocHeaderFooter = Class(TDocumentBody)
|
||||||
|
|
@ -14605,7 +14604,7 @@ Type TFootnotes = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
zip_;
|
[weakref]zip_;
|
||||||
footnotesXml_;
|
footnotesXml_;
|
||||||
footnotesNode_;
|
footnotesNode_;
|
||||||
idMap_;
|
idMap_;
|
||||||
|
|
@ -14800,7 +14799,9 @@ Type TTable = Class(DocObject, TTableImpl)
|
||||||
fields := FieldNames(data);
|
fields := FieldNames(data);
|
||||||
if IsTable(fields) then Begin
|
if IsTable(fields) then Begin
|
||||||
r := nils(length(data),length(fields));
|
r := nils(length(data),length(fields));
|
||||||
r[:,:] := data;
|
for i:=0 to length(data)-1 do
|
||||||
|
for _,field in fields do
|
||||||
|
r[i][_] := data[i][field];
|
||||||
data := r;
|
data := r;
|
||||||
End;
|
End;
|
||||||
if includeIndex then Begin
|
if includeIndex then Begin
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.7.7
|
// Version 1.7.8
|
||||||
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.7.7
|
// Version 1.7.8
|
||||||
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 等多种文档格式。
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ Type TDocxChart = Class(TSChart)
|
||||||
return true;
|
return true;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
docx_;
|
[weakref]docx_;
|
||||||
chartId_;
|
chartId_;
|
||||||
rId_;
|
rId_;
|
||||||
xmlObj_;
|
xmlObj_;
|
||||||
|
|
|
||||||
|
|
@ -591,7 +591,7 @@ Type TDocxFootnoteCopy = class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
old_footnote_obj_;
|
[weakref]old_footnote_obj_;
|
||||||
new_footnote_obj_;
|
new_footnote_obj_;
|
||||||
|
|
||||||
id_map_; // [id: footnote]
|
id_map_; // [id: footnote]
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ Type TDocxStyles = Class
|
||||||
defaultPpr_;
|
defaultPpr_;
|
||||||
defaultRpr_;
|
defaultRpr_;
|
||||||
private
|
private
|
||||||
docx_;
|
[weakref]docx_;
|
||||||
stylesXml_;
|
stylesXml_;
|
||||||
idMap_;
|
idMap_;
|
||||||
nameMap_;
|
nameMap_;
|
||||||
|
|
|
||||||
|
|
@ -228,7 +228,7 @@ Type TNumbering = Class
|
||||||
class(TSXml).UpdateNode(o.node_, arr['attributes'], arr['children']);
|
class(TSXml).UpdateNode(o.node_, arr['attributes'], arr['children']);
|
||||||
End;
|
End;
|
||||||
private
|
private
|
||||||
docx_;
|
[weakref]docx_;
|
||||||
numberingXml_;
|
numberingXml_;
|
||||||
maxAbstractNumId_:integer;
|
maxAbstractNumId_:integer;
|
||||||
maxNumId_:integer;
|
maxNumId_:integer;
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ Type TTableContent = class
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
docx_;
|
[weakref]docx_;
|
||||||
node_;
|
node_;
|
||||||
impl_;
|
impl_;
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ Type xlsxChart = Class(TSChart)
|
||||||
node := drawingXmlObj_.FirstChild('xdr:wsDr').InsertEndChild(o.Marshal());
|
node := drawingXmlObj_.FirstChild('xdr:wsDr').InsertEndChild(o.Marshal());
|
||||||
End;
|
End;
|
||||||
private
|
private
|
||||||
excel_;
|
[weakref]excel_;
|
||||||
drawingRID_:integer;
|
drawingRID_:integer;
|
||||||
chartId_;
|
chartId_;
|
||||||
chartRid_;
|
chartRid_;
|
||||||
|
|
|
||||||
|
|
@ -184,6 +184,7 @@ private
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
[weakref]excel_;//TSXlsxFile对象
|
||||||
authors_;
|
authors_;
|
||||||
commentId_;
|
commentId_;
|
||||||
commentFileName_:string;//'../comments/comment1.xml'
|
commentFileName_:string;//'../comments/comment1.xml'
|
||||||
|
|
@ -191,7 +192,6 @@ private
|
||||||
rId_:string;
|
rId_:string;
|
||||||
sheetName_:string;//sheet名称
|
sheetName_:string;//sheet名称
|
||||||
sheetFileName_;//xl/worksheets/sheetN.xml
|
sheetFileName_;//xl/worksheets/sheetN.xml
|
||||||
excel_;//TSExcelFile对象
|
|
||||||
commentXmlFile_;//XmlFile对象
|
commentXmlFile_;//XmlFile对象
|
||||||
commentObjs_;
|
commentObjs_;
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -45,5 +45,5 @@ Type xlsxDocProps = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
excel_; //TSExcelFile对象
|
[weakref]excel_; //TSExcelFile对象
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,6 @@ Type xlsxHeaderFooter = Class
|
||||||
|
|
||||||
private
|
private
|
||||||
sheet_; //XmlSheet对象
|
sheet_; //XmlSheet对象
|
||||||
file_; //TSExcelFile对象
|
[weakref]file_; //TSExcelFile对象
|
||||||
xmlFile_; //sheet对应的xml对象
|
xmlFile_; //sheet对应的xml对象
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ Type xlsxHyperLink = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
file_; //TSExcelFile对象
|
[weakref]file_; //TSExcelFile对象
|
||||||
xmlFile_;//XmlFile对象
|
xmlFile_;//XmlFile对象
|
||||||
sheetName_;
|
sheetName_;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,6 +169,6 @@ private
|
||||||
|
|
||||||
private
|
private
|
||||||
sheetName_:string; //sheet名称
|
sheetName_:string; //sheet名称
|
||||||
excel_;//TSExcelFile对象
|
[weakref]excel_;//TSExcelFile对象
|
||||||
zipfile_;
|
zipfile_;
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ Type xlsxPageLayout = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
file_; //TSExcelFile对象
|
[weakref]file_; //TSExcelFile对象
|
||||||
sheet_;//XmlSheet对象
|
sheet_;//XmlSheet对象
|
||||||
xmlFile_; //sheet对应的xml对象
|
xmlFile_; //sheet对应的xml对象
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ private
|
||||||
|
|
||||||
private
|
private
|
||||||
sheetName_:string; //sheet名称
|
sheetName_:string; //sheet名称
|
||||||
excel_;//TSExcelFile对象
|
[weakref]excel_;//TSExcelFile对象
|
||||||
zipfile_;
|
zipfile_;
|
||||||
drawingXmlObj_;
|
drawingXmlObj_;
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ Type xlsxSheetView = Class
|
||||||
End;
|
End;
|
||||||
|
|
||||||
private
|
private
|
||||||
file_; //TSExcelFile对象
|
[weakref]file_; //TSExcelFile对象
|
||||||
sheet_;//XmlSheet对象
|
sheet_;//XmlSheet对象
|
||||||
xmlFile_; //sheet对应的xml对象
|
xmlFile_; //sheet对应的xml对象
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -336,66 +336,61 @@ private
|
||||||
End
|
End
|
||||||
|
|
||||||
private
|
private
|
||||||
file_; //TSXlsxFile对象
|
[weakref]file_; //TSXlsxFile对象
|
||||||
style_xml_file_;
|
style_xml_file_;
|
||||||
style_; // 缓存style
|
style_; // 缓存style
|
||||||
End;
|
End;
|
||||||
|
|
||||||
// {*
|
// 参考:https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.numberingformat?view=openxml-3.0.1
|
||||||
// 也可参考: https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.wordprocessing.numberingformat?view=openxml-3.0.1
|
// 0 General
|
||||||
// numfmtid为1表示数值格式,即显示为整数或小数,且根据系统设置或区域设置来决定小数点、千位分隔符和负数的显示方式。
|
// 1 0
|
||||||
// numfmtid为2表示货币格式,即显示为带有货币符号的数值,且根据系统设置或区域设置来决定货币符号、小数点、千位分隔符和负数的显示方式。
|
// 2 0.00
|
||||||
// numfmtid为3表示会计格式,即显示为带有货币符号和千位分隔符的数值,且根据系统设置或区域设置来决定货币符号、小数点和负数的显示方式。会计格式的特点是货币符号和数值之间有一定的空格,且小数位数固定为2。
|
// 3 #,##0
|
||||||
// numfmtid为4表示百分比格式,即显示为带有百分号的数值,且根据系统设置或区域设置来决定小数点和负数的显示方式。
|
// 4 #,##0.00
|
||||||
// numfmtid为5表示千位分隔符格式,即显示为带有千位分隔符的数值。
|
// 5 整数,货币符号旁边($#,##0_);($#,##0))
|
||||||
// numfmtid为6表示负数红色格式,即显示为带有负号和红色字体的数值。
|
// 6 带两位小数的货币符号($#,##0.00_);($#,##0.00)
|
||||||
// numfmtid为7表示千位分隔符格式,即显示为带有千位分隔符的数值,且根据系统设置或区域设置来决定小数点和负数的显示方式。
|
// 7 整数,带括号表示负数($#,##0_);Red
|
||||||
// numfmtid为8表示负数红色格式,即显示为带有负号和红色字体的数值,且根据系统设置或区域设置来决定小数点和千位分隔符的显示方式。
|
// 8 带两位小数的货币符号和红色负数($#,##0.00_);Red
|
||||||
// numfmtid为9表示分数格式,即显示为分数形式的数值,且根据系统设置或区域设置来决定负数的显示方式。分数格式的特点是分子和分母都是一位数,例如1/2。
|
// 9 0%
|
||||||
// numfmtid为10表示指数格式,即显示为带有小数点和指数的数值。
|
// 10 0.00%
|
||||||
// numfmtid为11表示日期时间格式,即显示为年/月/日 时:分的形式。
|
// 11 0.00E+00
|
||||||
// numfmtid为12表示时间格式,即显示为时:分:秒的形式。
|
// 12 # ?/?
|
||||||
// numfmtid为13表示时间格式,即显示为上午/下午 时:分的形式。
|
// 13 # ??/??
|
||||||
// numfmtid为16表示日期格式,即显示为月/日/年的形式。
|
// 14 mm-dd-yy
|
||||||
// numfmtid为17表示日期格式,即显示为日-月-年的形式。
|
// 15 d-mmm-yy
|
||||||
// numfmtid为18表示日期格式,即显示为年-月-日的形式。
|
// 16 d-mmm
|
||||||
// numfmtid为19表示日期格式,即显示为月-年的形式。
|
// 17 mmm-yy
|
||||||
// numfmtid为20表示日期格式,即显示为年-月的形式。
|
// 18 h:mm AM/PM
|
||||||
// numfmtid为21表示日期时间格式,即显示为年/月/日 时:分:秒的形式。
|
// 19 h:mm:ss AM/PM
|
||||||
// numfmtid为22表示日期时间格式,即显示为年/月/日 上午/下午 时:分的形式。
|
// 20 h:mm
|
||||||
// numfmtid为23表示时间格式,即显示为时:分的形式,带有前导零。
|
// 21 h:mm:ss
|
||||||
// numfmtid为24表示时间格式,即显示为时:分:秒的形式,带有前导零。
|
// 22 m/d/yy h:mm
|
||||||
// numfmtid为25表示时间格式,即显示为上午/下午 时:分的形式,带有前导零。
|
// 27 [$-404]e/m/d yyyy"年"m"月"
|
||||||
// numfmtid为26表示时间格式,即显示为上午/下午 时:分:秒的形式,带有前导零。
|
// 28 [$-404]e"年"m"月"d"日" m"月"d"日"
|
||||||
// numfmtid为27表示错误值格式,即显示为#NULL!。
|
// 29 [$-404]e"年"m"月"d"日" m"月"d"日"
|
||||||
// numfmtid为28表示错误值格式,即显示为#DIV/0!。
|
// 30 m/d/yy m-d-yy
|
||||||
// numfmtid为29表示错误值格式,即显示为#VALUE!。
|
// 31 yyyy"年"m"月"d"日" yyyy"年"m"月"d"日"
|
||||||
// numfmtid为30表示错误值格式,即显示为#REF!。
|
// 32 hh"時"mm"分" h"时"mm"分"
|
||||||
// numfmtid为31表示错误值格式,即显示为#NAME?。
|
// 33 hh"時"mm"分"ss"秒" h"时"mm"分"ss"秒"
|
||||||
// numfmtid为32表示错误值格式,即显示为#NUM!。
|
// 34 上午/下午hh"時"mm"分" 上午/下午h"时"mm"分"
|
||||||
// numfmtid为33表示错误值格式,即显示为#N/A。
|
// 35 上午/下午hh"時"mm"分"ss"秒" 上午/下午h"时"mm"分"ss"秒"
|
||||||
// numfmtid为34表示错误值格式,即显示为#GETTING_DATA。
|
// 36 [$-404]e/m/d yyyy"年"m"月"
|
||||||
// numfmtid是35表示货币格式,即显示为带有货币符号的数值,且小数位数为0。
|
// 37 #,##0 ;(#,##0)
|
||||||
// numfmtid为36表示货币格式,即显示为带有货币符号和负数红色的数值。
|
// 38 #,##0 ;[Red](#,##0)
|
||||||
// numfmtid为38表示会计格式,即显示为带有货币符号和负数红色的数值,且小数位数为2。
|
// 39 #,##0.00;(#,##0.00)
|
||||||
// numfmtid为39表示会计格式,即显示为带有货币符号和负数红色的数值,且小数位数为0。
|
// 40 #,##0.00;[Red](#,##0.00)
|
||||||
// numfmtid为40表示会计格式,即显示为带有货币符号和负数红色的数值,且小数位数为4。
|
// 45 mm:ss
|
||||||
// numfmtid为41表示货币格式,即显示为带有货币符号和千位分隔符的数值,且小数位数为2。
|
// 46 [h]:mm:ss
|
||||||
// numfmtid为42表示货币格式,即显示为带有货币符号和千位分隔符的数值,且小数位数为0。
|
// 47 mmss.0
|
||||||
// numfmtid为43表示货币格式,即显示为带有货币符号和千位分隔符的数值,且小数位数为4。
|
// 48 ##0.0E+0
|
||||||
// numfmtid为44表示货币格式,即显示为带有货币符号和千位分隔符的数值,且负数红色,且小数位数为2。
|
// 49 @(文本)
|
||||||
// numfmtid为45表示货币格式,即显示为带有货币符号和千位分隔符的数值,且负数红色,且小数位数为0。
|
// 50 [$-404]e/m/d yyyy"年"m"月"
|
||||||
// numfmtid为46表示货币格式,即显示为带有货币符号和千位分隔符的数值,且负数红色,且小数位数为4。
|
// 51 [$-404]e"年"m"月"d"日" m"月"d"日"
|
||||||
// numfmtid为47表示会计格式,即显示为带有货币符号和千位分隔符的数值,且小数位数为2。
|
// 52 上午/下午hh"時"mm"分" yyyy"年"m"月"
|
||||||
// numfmtid为48表示会计格式,即显示为带有货币符号和千位分隔符的数值,且小数位数为0。
|
// 53 上午/下午hh"時"mm"分"ss"秒" m"月"d"日"
|
||||||
// numfmtid为49表示文本格式,即显示为文本。
|
// 54 [$-404]e"年"m"月"d"日" m"月"d"日"
|
||||||
// numfmtid为50表示日期格式,即显示为年/月/日的形式,带有前导零。
|
// 55 上午/下午hh"時"mm"分" 上午/下午h"时"mm"分"
|
||||||
// numfmtid为51表示日期格式,即显示为月/日/年的形式,带有前导零。
|
// 56 上午/下午hh"時"mm"分"ss"秒" 上午/下午h"时"mm"分"ss"秒"
|
||||||
// numfmtid为52表示日期格式,即显示为日-月-年的形式,带有前导零。
|
// 57 [$-404]e/m/d yyyy"年"m"月"
|
||||||
// numfmtid为53表示日期格式,即显示为年-月-日的形式,带有前导零。
|
// 58 [$-404]e"年"m"月"d"日" m"月"d"日"
|
||||||
// numfmtid为54表示日期格式,即显示为月-年的形式,带有前导零。
|
|
||||||
// numfmtid为55表示日期格式,即显示为年-月的形式,带有前导零。
|
|
||||||
// numfmtid为56表示日期时间格式,即显示为年/月/日 时:分:秒的形式,带有前导零。
|
|
||||||
// numfmtid为57表示日期时间格式,即显示为年/月/日 上午/下午 时:分的形式,带有前导零。
|
|
||||||
// numfmtid为58表示日期时间格式,即显示为年/月/日 上午/下午 时:分:秒的形式,带有前导零。
|
|
||||||
// *}
|
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ private
|
||||||
|
|
||||||
private
|
private
|
||||||
sheetName_:string; //sheet名称
|
sheetName_:string; //sheet名称
|
||||||
excel_;//TSExcelFile对象
|
[weakref]excel_;//TSExcelFile对象
|
||||||
zipfile_;
|
zipfile_;
|
||||||
tableXmlFile_;
|
tableXmlFile_;
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
|
|
@ -1628,7 +1628,7 @@ private
|
||||||
sheetNames_;
|
sheetNames_;
|
||||||
sheetIndexMap_;
|
sheetIndexMap_;
|
||||||
sheetPrefix_:string;
|
sheetPrefix_:string;
|
||||||
zipfile_;
|
[weakref]zipfile_;
|
||||||
xmlFileObjMap_; //XmlFile对象存储
|
xmlFileObjMap_; //XmlFile对象存储
|
||||||
sheetObjMap_; //XmlSheet对象存储
|
sheetObjMap_; //XmlSheet对象存储
|
||||||
End;
|
End;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue