diff --git a/ExcelFile使用帮助.xlsx b/ExcelFile使用帮助.xlsx index 2de69c9..2adfd74 100644 Binary files a/ExcelFile使用帮助.xlsx and b/ExcelFile使用帮助.xlsx differ diff --git a/funcext/TSOffice/TOfficeObj.tsf b/funcext/TSOffice/TOfficeObj.tsf index b6bc329..619c9bb 100644 --- a/funcext/TSOffice/TOfficeObj.tsf +++ b/funcext/TSOffice/TOfficeObj.tsf @@ -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; diff --git a/funcext/TSOffice/TSDocxFile.tsf b/funcext/TSOffice/TSDocxFile.tsf index 2301691..265de7c 100644 --- a/funcext/TSOffice/TSDocxFile.tsf +++ b/funcext/TSOffice/TSDocxFile.tsf @@ -1,4 +1,4 @@ -// Version 1.1.7 +// Version 1.1.8 Type TSDocxFile = Class ///Version: V1.0 2022-09-20 diff --git a/funcext/TSOffice/TSExcelFile.tsf b/funcext/TSOffice/TSExcelFile.tsf index 155d124..1aa8f83 100644 --- a/funcext/TSOffice/TSExcelFile.tsf +++ b/funcext/TSOffice/TSExcelFile.tsf @@ -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_; diff --git a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf index ab7bfbb..1ae43fa 100644 --- a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf +++ b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf @@ -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); diff --git a/更新日志.md b/更新日志.md index fd46e4c..828b2ae 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,5 +1,13 @@ # 更新日志 +## 2023-2-22 + +### V1.1.8 + +#### excel + +1. 新增`GetCalcOptios` + ## 2023-2-21 ### V1.1.7