This commit is contained in:
csh 2023-02-22 10:49:11 +08:00
parent 80783ee8a4
commit 89bfc05455
6 changed files with 169 additions and 15 deletions

Binary file not shown.

View File

@ -1,4 +1,4 @@
// Version 1.1.7
// Version 1.1.8
Function TOfficeObj(n);
Begin
@ -9488,10 +9488,140 @@ type TCalcPr=class(NodeInfo)
RootObj := node;
End;
Property CalCId read readXMLCalCId write writeXMLCalCId;
Function readXMLCalCId();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('CalCId'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLCalCId);
End;
Function writeXMLCalCId(str);
Begin
XMLCalCId := class(TSXml).CurCodePageToUtf8(str);
End;
Property CalcMode read readXMLCalcMode write writeXMLCalcMode;
Function readXMLCalcMode();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('CalcMode'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLCalcMode);
End;
Function writeXMLCalcMode(str);
Begin
XMLCalcMode := class(TSXml).CurCodePageToUtf8(str);
End;
Property RefMode read readXMLRefMode write writeXMLRefMode;
Function readXMLRefMode();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('RefMode'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLRefMode);
End;
Function writeXMLRefMode(str);
Begin
XMLRefMode := class(TSXml).CurCodePageToUtf8(str);
End;
Property Iterate read readXMLIterate write writeXMLIterate;
Function readXMLIterate();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('Iterate'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLIterate);
End;
Function writeXMLIterate(str);
Begin
XMLIterate := class(TSXml).CurCodePageToUtf8(str);
End;
Property IterateCount read readXMLIterateCount write writeXMLIterateCount;
Function readXMLIterateCount();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('IterateCount'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLIterateCount);
End;
Function writeXMLIterateCount(str);
Begin
XMLIterateCount := class(TSXml).CurCodePageToUtf8(str);
End;
Property IterateDelta read readXMLIterateDelta write writeXMLIterateDelta;
Function readXMLIterateDelta();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('IterateDelta'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLIterateDelta);
End;
Function writeXMLIterateDelta(str);
Begin
XMLIterateDelta := class(TSXml).CurCodePageToUtf8(str);
End;
Property CalcOnSave read readXMLCalcOnSave write writeXMLCalcOnSave;
Function readXMLCalcOnSave();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('CalcOnSave'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLCalcOnSave);
End;
Function writeXMLCalcOnSave(str);
Begin
XMLCalcOnSave := class(TSXml).CurCodePageToUtf8(str);
End;
Property FullPrecision read readXMLFullPrecision write writeXMLFullPrecision;
Function readXMLFullPrecision();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('FullPrecision'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLFullPrecision);
End;
Function writeXMLFullPrecision(str);
Begin
XMLFullPrecision := class(TSXml).CurCodePageToUtf8(str);
End;
Property ConCurrentCalc read readXMLConCurrentCalc write writeXMLConCurrentCalc;
Function readXMLConCurrentCalc();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('ConCurrentCalc'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLConCurrentCalc);
End;
Function writeXMLConCurrentCalc(str);
Begin
XMLConCurrentCalc := class(TSXml).CurCodePageToUtf8(str);
End;
Property ConCurrentManualCount read readXMLConCurrentManualCount write writeXMLConCurrentManualCount;
Function readXMLConCurrentManualCount();
Begin
tmpVal := class(TSXml).Utf8ToCurCodePage(Value('ConCurrentManualCount'));
if not ifNil(tmpVal) then return tmpVal;
return class(TSXml).Utf8ToCurCodePage(XMLConCurrentManualCount);
End;
Function writeXMLConCurrentManualCount(str);
Begin
XMLConCurrentManualCount := class(TSXml).CurCodePageToUtf8(str);
End;
Function GetAttrs(); override;
Begin
HandleAttrs();
return array(("CalCId", "calcId", CalCId, ""),("CalcMode", "calcMode", CalcMode, ""),("RefMode", "refMode", RefMode, ""),("Iterate", "iterate", Iterate, ""),("IterateCount", "iterateCount", IterateCount, ""),("IterateDelta", "iterateDelta", IterateDelta, ""),("CalcOnSave", "calcOnSave", CalcOnSave, ""),("FullPrecision", "fullPrecision", FullPrecision, ""),("ConCurrentCalc", "conCurrentCalc", ConCurrentCalc, ""),("ConCurrentManualCount", "conCurrentManualCount", ConCurrentManualCount, "")) union ExtAttr;
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;
@ -9501,16 +9631,16 @@ type TCalcPr=class(NodeInfo)
End;
//Attributes
CalCId;
CalcMode;
RefMode;
Iterate;
IterateCount;
IterateDelta;
CalcOnSave;
FullPrecision;
ConCurrentCalc;
ConCurrentManualCount;
XMLCalCId;
XMLCalcMode;
XMLRefMode;
XMLIterate;
XMLIterateCount;
XMLIterateDelta;
XMLCalcOnSave;
XMLFullPrecision;
XMLConCurrentCalc;
XMLConCurrentManualCount;
//Nodes
End;

View File

@ -1,4 +1,4 @@
// Version 1.1.7
// Version 1.1.8
Type TSDocxFile = Class
///Version: V1.0 2022-09-20

View File

@ -1,4 +1,4 @@
// Version 1.1.7
// Version 1.1.8
Type TSExcelFile = Class
///Version: V1.0 2022-08-08
@ -884,6 +884,13 @@ Type TSExcelFile = Class
return workbook_.SetCalcOptions(calcPr);
End;
///获取工作簿计算选项
///返回: TCalcPr对象
Function GetCaclOptions();
Begin
return workbook_.GetCaclOptions();
End;
Function WorkBook();
Begin
return workbook_;

View File

@ -1235,7 +1235,16 @@ Type xlsxWorkBook = Class
if ifObj(calc_node) then workbook_node.DeleteChild(calc_node);
calcPr.calcId := "191029";
workbook_node.InsertAfterChild(sheet_node, calcPr.Marshal());
End
End;
Function GetCaclOptions();
Begin
workbook_xml := GetXmlFileObj('xl/workbook.xml');
node := workbook_xml.FirstChildElement('workbook').FirstChildElement('calcPr');
calcPr := TOfficeObj('TCalcPr');
calcPr.RootObj := node;
return calcPr;
End;
private
Function generateRow(c1, c2, r);

View File

@ -1,5 +1,13 @@
# 更新日志
## 2023-2-22
### V1.1.8
#### excel
1. 新增`GetCalcOptios`
## 2023-2-21
### V1.1.7