diff --git a/funcext/TSOffice/TOfficeObj.tsf b/funcext/TSOffice/TOfficeObj.tsf index 80e7744..c276b93 100644 --- a/funcext/TSOffice/TOfficeObj.tsf +++ b/funcext/TSOffice/TOfficeObj.tsf @@ -1,4 +1,4 @@ -// Version 1.2.8 +// Version 1.2.9 Function TOfficeObj(n); Begin diff --git a/funcext/TSOffice/TSDocxFile.tsf b/funcext/TSOffice/TSDocxFile.tsf index 06a1122..46d8da6 100644 --- a/funcext/TSOffice/TSDocxFile.tsf +++ b/funcext/TSOffice/TSDocxFile.tsf @@ -1,4 +1,4 @@ -// Version 1.2.8 +// Version 1.2.9 Type TSDocxFile = Class ///Version: V1.0 2022-09-20 diff --git a/funcext/TSOffice/TSExcelFile.tsf b/funcext/TSOffice/TSExcelFile.tsf index 7552431..19b0d41 100644 --- a/funcext/TSOffice/TSExcelFile.tsf +++ b/funcext/TSOffice/TSExcelFile.tsf @@ -1,4 +1,4 @@ -// Version 1.2.8 +// Version 1.2.9 Type TSExcelFile = Class ///Version: V1.0 2022-08-08 diff --git a/funcext/TSOffice/worksheet/xlsxHyperLink.tsf b/funcext/TSOffice/worksheet/xlsxHyperLink.tsf index 63b8390..8da2e07 100644 --- a/funcext/TSOffice/worksheet/xlsxHyperLink.tsf +++ b/funcext/TSOffice/worksheet/xlsxHyperLink.tsf @@ -12,8 +12,9 @@ Type xlsxHyperLink = Class return new xlsxHyperLink(sheetname, file, xmlFile); End; - Function SetCellHyperLink(axis, hyperlink); + Function SetCellHyperLink(axis, link); Begin + hyperlink := link; work_node := xmlFile_.FirstChildElement('worksheet'); hyperlinks := work_node.FirstChildElement('hyperlinks'); if not ifObj(hyperlinks) then begin @@ -32,22 +33,23 @@ Type xlsxHyperLink = Class hyperlink.Axis := axis; if hyperlink.LinkType = "location" then begin - hyperlink.LinkType := nil; hyperlink.Location := hyperlink.LinkUrl; - hyperlink.LinkUrl := nil; end else if hyperlink.LinkType = 'external' then begin - [rid, commentFileName, sheetFileName, relsfile] := file_.WorkBook().GetRelationshipRid(sheetName_, hyperlink.LinkUrl); - if commentFileName = "" then + relsfile := file_.WorkBook().GetSheetRelsFile(sheetName_); + [id, target, rid] := class(TSXml).FindRelationshipRid(relsfile, hyperlink.LinkUrl); + if target = "" then Begin - rid++; - ridstr := 'rId' + inttostr(rid); - xmlfile := file_.WorkBook().GetXmlFileObj(relsfile); - class(TSXml).AddRelationshipRid(xmlfile, hyperlink.LinkUrl, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", ridstr, "External"); + id++; + ridstr := 'rId' + inttostr(id); + class(TSXml).AddRelationshipRid(relsfile, hyperlink.LinkUrl, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", ridstr, "External"); + hyperlink.Rid := ridstr; End - hyperlink.RId := 'rId' + inttostr(rid); + else hyperlink.Rid := 'rId' + inttostr(rid); end + hyperlink.LinkType := nil; + hyperlink.LinkUrl := nil; if not ifObj(hyperlink_node) then begin hyperlinks.InsertEndChild(hyperlink.marshal()); diff --git a/更新日志.md b/更新日志.md index 37c5880..e9dd8b3 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,5 +1,13 @@ # 更新日志 +## 2023-4-4 + +### V1.2.9 + +#### excel + +1. 修复超链接兼容性 + ## 2023-3-31 ### V1.2.8