From ee7b7164ce839889c100fcadfb9b169d8aa2820e Mon Sep 17 00:00:00 2001 From: csh Date: Tue, 14 Nov 2023 11:38:27 +0800 Subject: [PATCH] v1.5.0 --- DocxFile使用帮助.docx | Bin 83681 -> 84391 bytes XlsxFile使用帮助.xlsx | Bin 28400 -> 28437 bytes funcext/TSOffice/TOfficeObj.tsf | 269 +++++++++++++++++++- funcext/TSOffice/TSDocxFile.tsf | 14 +- funcext/TSOffice/TSExcelFile.tsf | 4 +- funcext/TSOffice/TSUtils/NodeInfo.tsf | 18 +- funcext/TSOffice/TSUtils/TSXml.tsf | 17 +- funcext/TSOffice/TSXlsxFile.tsf | 4 +- funcext/TSOffice/document/TDocxCopy.tsf | 92 ++++++- funcext/TSOffice/document/docxDocument.tsf | 1 + funcext/TSOffice/worksheet/xlsxWorkBook.tsf | 29 ++- 更新日志.md | 13 + 12 files changed, 434 insertions(+), 27 deletions(-) diff --git a/DocxFile使用帮助.docx b/DocxFile使用帮助.docx index 5c0f868e5f6a338ce461007482bf1d6eb409bf32..b5f8fbbbe61613ca75ca1962cead553fdd4e1901 100644 GIT binary patch delta 44954 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¬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

a;d>>P(sdd9 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 J&!NWw_&-;DT4n$M diff --git a/XlsxFile使用帮助.xlsx b/XlsxFile使用帮助.xlsx index c410454f97fadbc56c4349082addccafaa343a4a..f2b6b5692b0db92a408829578c17419c7388b78c 100644 GIT binary patch delta 8085 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 delta 8063 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 maxId_ then maxId_ := id; + node := node.NextElement(); + end + End; + + Function Add(); + Begin + node := footnotesNode_.InsertEndChild('element', 'w:footnote'); + node.SetAttribute('w:id', ++maxId_); + obj := new TFootnote(node); + obj.Id := maxId_; + idMap_[maxId_] := obj; + return obj; + End; + + Function GetFootnote(id); + Begin + return idMap_[id]; + End; + + Function CopyFootnote(obj); + Begin + marshal := obj.Root().Marshal()[0]; + node := footnotesNode_.InsertEndChild(marshal); + node.SetAttribute('w:id', ++maxId_); + obj := new TFootnote(node); + obj.Id := maxId_; + idMap_[maxId_] := obj; + return obj; + End; + +private + zip_; + footnotesXml_; + footnotesNode_; + idMap_; + maxId_; +End; + //w:tc Type TCell = Class(TDocumentBody, TWTc) Function Create();overload; @@ -14331,6 +14581,11 @@ Type TTable = Class(DocObject, TTableImpl) End; InitRootNode(node); End; + + Function GetCell(r, c); + Begin + return cells_[r-1, c-1]; + End; ///设置表格数据 ///data: table,数据表 diff --git a/funcext/TSOffice/TSDocxFile.tsf b/funcext/TSOffice/TSDocxFile.tsf index 4940dfc..805e0ba 100644 --- a/funcext/TSOffice/TSDocxFile.tsf +++ b/funcext/TSOffice/TSDocxFile.tsf @@ -1,4 +1,4 @@ -// Version 1.4.9 +// Version 1.5.0 Type TSDocxFile = Class ///Version: V1.0 2022-09-20 @@ -559,6 +559,17 @@ Type TSDocxFile = Class numberingObj_ := new TNumbering(self); return numberingObj_; End; + + ///返回:TFootnotes对象 + Function FootNotesObject(); + Begin + if not ifObj(footnotesObj_) then + begin + footnotesObj_ := new TOfficeObj('TFootnoteBody'); + footnotesObj_.InitFootnotes(self.Zip()); + end + return footnotesObj_; + End; ///执行word文档内嵌tsl代码(执行内嵌脚本的环境字符集为GBK) ///返回:[err,tslFuncCount,errArr]: err 执行错误TSL代码段次数,tslFuncCount TSL代码段总数,errArr 执行TSL错误信息(array(('code':'代码', 'err':'错误信息'))) @@ -616,6 +627,7 @@ private zipfile_; //压缩文件对象 document_; //Document对象 styleObj_; + footnotesObj_; numberingObj_; DocPrId_; End; diff --git a/funcext/TSOffice/TSExcelFile.tsf b/funcext/TSOffice/TSExcelFile.tsf index 5aa4034..079edce 100644 --- a/funcext/TSOffice/TSExcelFile.tsf +++ b/funcext/TSOffice/TSExcelFile.tsf @@ -1,4 +1,4 @@ -// Version 1.4.9 +// Version 1.5.0 Type TSExcelFile = Class ///Version: V1.0 2022-08-08 @@ -915,7 +915,7 @@ Type TSExcelFile = Class ///复制Sheet ///sourceSheet: 源工作表 - ///destSheet: 目的工作表 + ///destSheet: 目的工作表,如果destSheet存在,则覆盖destSheet,否则末尾新增destSheet Function CopySheet(sourceSheet, destSheet); Begin return workbook_.CopySheet(class(TSXml).CurCodePageToUtf8(sourceSheet), class(TSXml).CurCodePageToUtf8(destSheet)); diff --git a/funcext/TSOffice/TSUtils/NodeInfo.tsf b/funcext/TSOffice/TSUtils/NodeInfo.tsf index 29906a0..da21e20 100644 --- a/funcext/TSOffice/TSUtils/NodeInfo.tsf +++ b/funcext/TSOffice/TSUtils/NodeInfo.tsf @@ -18,17 +18,31 @@ public return RootObj; End - Function Update(); + Function Update(position);overload; Begin if ifObj(RootObj) then Begin arr := Marshal(); if length(arr['attributes']) or length(arr['children']) then Begin - curNode := class(TSXml).GetNode(RootObj, NodeUri, 'end'); + curNode := class(TSXml).GetNode(RootObj, NodeUri, position); if ifObj(curNode) then class(TSXml).UpdateNode(curNode, arr['attributes'], arr['children']); End; End; End; + + Function Update();overload; + Begin + self.Update("end"); + End; + + Function Delete(); + Begin + if ifObj(RootObj) then + begin + curNode := class(TSXml).GetNode(RootObj, NodeUri); + if ifObj(curNode) then curNode.DeleteChildren(); + end + End; Function GetAttrs(); virtual; Begin diff --git a/funcext/TSOffice/TSUtils/TSXml.tsf b/funcext/TSOffice/TSUtils/TSXml.tsf index b045b89..01be3a3 100644 --- a/funcext/TSOffice/TSUtils/TSXml.tsf +++ b/funcext/TSOffice/TSUtils/TSXml.tsf @@ -136,7 +136,7 @@ Type TSXml = Class End; return node; End; - + class Function RemoveNode(obj, r); Begin arr := str2array(r, '/'); @@ -151,6 +151,21 @@ Type TSXml = Class nodeArr[cnt - 2].DeleteChild(nodeArr[cnt - 1]); End; + class Function GetNodeN(xmlnode, name, count); + Begin + arr := str2array(name, '/'); + node := xmlnode; + for i:=0 to length(arr)-1 do + begin + node := node.FirstChild(arr[i]); + if not ifObj(node) then return nil; + end + last := arr[length(arr)-1]; + for i:=2 to count do + node := node.NextElement(last); + return node; + End; + ///prefix为空——查找最大rId,prefix非空——查找指定Target class Function FindRelationshipRid(xmlfile, prefix); Begin diff --git a/funcext/TSOffice/TSXlsxFile.tsf b/funcext/TSOffice/TSXlsxFile.tsf index 618084f..26e2e32 100644 --- a/funcext/TSOffice/TSXlsxFile.tsf +++ b/funcext/TSOffice/TSXlsxFile.tsf @@ -1,4 +1,4 @@ -// Version 1.4.9 +// Version 1.5.0 Type TSXlsxFile = Class ///Version: V1.0 2022-08-08 @@ -915,7 +915,7 @@ Type TSXlsxFile = Class ///复制Sheet ///sourceSheet: 源工作表 - ///destSheet: 目的工作表 + ///destSheet: 目的工作表,如果destSheet存在,则覆盖destSheet,否则末尾新增destSheet Function CopySheet(sourceSheet, destSheet); Begin return workbook_.CopySheet(class(TSXml).CurCodePageToUtf8(sourceSheet), class(TSXml).CurCodePageToUtf8(destSheet)); diff --git a/funcext/TSOffice/document/TDocxCopy.tsf b/funcext/TSOffice/document/TDocxCopy.tsf index 089c01b..6cdbd48 100644 --- a/funcext/TSOffice/document/TDocxCopy.tsf +++ b/funcext/TSOffice/document/TDocxCopy.tsf @@ -9,6 +9,7 @@ Type TDocxCopy = class copy_drawing_ := array(); style_copy_obj_ := new TDocxStyleCopy(oldObj.StyleObject(), newObj.StyleObject()); number_copy_obj_ := new TDocxNumberCopy(oldObj, newObj); + footnote_copy_obj_ := new TDocxFootnoteCopy(oldObj, newObj); End; Function Init(); @@ -110,6 +111,7 @@ private // 比较新文件的图片在旧文件中是否存在 zip := old_docx_obj_.Zip(); + xml := zip.Get('word/_rels/document.xml.rels'); files := sselect ['FileName'] from zip.Files() where AnsiStartsText('word/media/image', ['FileName']) end; for i:=0 to length(files)-1 do Begin if zip.Diff(files[i], image_file) = 0 then Begin @@ -117,7 +119,6 @@ private [maxRid, imageFile, rid] := class(TSXml).FindRelationshipRid(xml, prefix); End; End; - xml := zip.Get('word/_rels/document.xml.rels'); if rid = 0 then begin image_cnt := length(files) + 1; @@ -131,9 +132,9 @@ private zip.Add('word/' + image_path, image_file); contentXml := zip.Get('[Content_Types].xml'); class(TSXml).AddDefaultContentType(contentXml, postfix, 'image/' $ postfix); - node.SetAttribute('r:embed', 'rId' $ rid); end end + node.SetAttribute('r:embed', 'rId' $ rid); End; Function SetChart(node); @@ -210,21 +211,64 @@ private Function SetParagraphInfo(paragraph); Begin - style := class(TSXml).GetNode(paragraph.node_, 'w:pPr/w:pStyle'); + CopyStyle(paragraph.node_, 'w:pPr/w:pStyle'); + CopyNumber(paragraph.node_, 'w:pPr/w:numPr/w:numId'); + SetRunsInfo(paragraph.node_); + DeleteComment(paragraph); // 删除批注 + End; + + Function SetRunsInfo(node); + Begin + run := node.FirstChildElement('w:r'); + while ifObj(run) do + begin + CopyFootnote(run); + CopyStyle(run, 'w:rPr/w:rStyle'); + run := run.NextElement(); + end + End; + + Function CopyStyle(node, path); + Begin + style := class(TSXml).GetNode(node, path); if ifObj(style) then begin styleid := style.GetAttribute('w:val'); new_id := style_copy_obj_.GetStyleNewId(styleid); if new_id then style.SetAttribute('w:val', new_id); end - numpr := class(TSXml).GetNode(paragraph.node_, 'w:pPr/w:numPr/w:numId'); + End; + + Function CopyNumber(node, path); + Begin + numpr := class(TSXml).GetNode(node, path); if ifObj(numpr) then begin id := numpr.GetAttribute('w:val'); numberid := number_copy_obj_.CopyNumbering(id); numpr.SetAttribute('w:val', numberid); end - DeleteComment(paragraph); // 删除批注 + End; + + Function CopyFootnote(node); + Begin + footnote := node.FirstChildElement('w:footnoteReference'); + if not ifObj(footnote) then return; + id := footnote.GetAttribute('w:id'); + if id then + begin + obj := footnote_copy_obj_.CopyFootnote(id); + footnote.SetAttribute('w:id', obj.Id); + parts := obj.Parts(); + for i:=0 to length(parts)-1 do + begin + case GetPartType(parts[i]) of + 0: SetParagraphInfo(parts[i]); + 1: SetDrawingInfo(parts[i]); + 2: SetTableInfo(parts[i]); + end; + end + end End; Function SetTableInfo(table); @@ -295,6 +339,7 @@ private new_docx_obj_; style_copy_obj_; number_copy_obj_; + footnote_copy_obj_; copy_table_; copy_paragraph_; @@ -461,3 +506,40 @@ private id_map_; // [id: styleobj] End; + +Type TDocxFootnoteCopy = class + + Function Create(oldObj, newObj); + Begin + footnotexml := newObj.Zip().Get('word/footnotes.xml'); + if ifObj(footnotexml) then + begin + old_footnote_obj_ := oldObj.FootNotesObject(); + new_footnote_obj_ := newObj.FootNotesObject(); + end + else begin + old_footnote_obj_ := nil; + new_footnote_obj_ := nil; + end + id_map_ := array(); + End; + + Function CopyFootnote(id); + Begin + if ifObj(old_footnote_obj_) and ifObj(new_footnote_obj_) then + begin + if (obj := new_footnote_obj_.GetFootnote(id)) and not id_map_[id] then + begin + footnote_obj := old_footnote_obj_.CopyFootnote(obj); + id_map_[id] := footnote_obj; + end + return id_map_[id]; + end + End; + +private + old_footnote_obj_; + new_footnote_obj_; + + id_map_; // [id: footnote] +End; diff --git a/funcext/TSOffice/document/docxDocument.tsf b/funcext/TSOffice/document/docxDocument.tsf index 31550c0..f0a1bcb 100644 --- a/funcext/TSOffice/document/docxDocument.tsf +++ b/funcext/TSOffice/document/docxDocument.tsf @@ -10,6 +10,7 @@ Type docxDocument = Class bodyNode_ := root_.FirstChildElement('w:body'); body_ := TOfficeObj('TwBody'); body_.InitNode(bodyNode_); + body_.InitRootNode(bodyNode_); body_.zipfile_ := z; body_.document_ := self; bookmarkid_ := -1; diff --git a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf index fb73d9f..bda017b 100644 --- a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf +++ b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf @@ -519,15 +519,19 @@ Type xlsxWorkBook = Class Function CopySheet(sourceSheet, destSheet); Begin - ind := sheetIndexMap_[ LowerCase(destSheet) ]; - if ifint(ind) then return destSheet $ ' already exists.'; ind := sheetIndexMap_[ LowerCase(sourceSheet) ]; if not ifint(ind) then return sourceSheet $ ' does not exists.'; + dest_ind := sheetIndexMap_[ LowerCase(destSheet) ]; //copy sheet - sheetId := vselect maxof(['sheetId']) from sheetNames_ end; - sheetId := integer(sheetId) + 1; - fname := sheetPrefix_ $ inttostr(sheetsCount_ + 1) $ '.xml'; + if ifint(dest_ind) then + begin + fname := sheetNames_[dest_ind]['file']; + zipfile_.Remove(fname); + end + else begin + fname := sheetPrefix_ $ inttostr(sheetsCount_ + 1) $ '.xml'; + end sheet := GetSheetXmlFile(sourceSheet); zipfile_.Add(fname, sheet.Data()); xml_file := GetXmlFileObj(fname); @@ -556,7 +560,14 @@ Type xlsxWorkBook = Class sheet_rels := GetSheetRelsFile(sourceSheet); if ifObj(sheet_rels) then begin - rels_name := 'xl/worksheets/_rels/' + 'sheet' + inttostr(sheetsCount_ + 1) + '.xml.rels'; + if ifint(dest_ind) then + begin + rels_name := 'xl/worksheets/_rels/' + ExtractFileName(sheetNames_[dest_ind]['file']) + '.rels'; + zipfile_.Remove(rels_name); + end + else begin + rels_name := 'xl/worksheets/_rels/' + 'sheet' + inttostr(sheetsCount_ + 1) + '.xml.rels'; + end zipfile_.Add(rels_name, sheet_rels.Data()); rels_file := GetXmlFileObj(rels_name); relationship := rels_file.FirstChildElement('Relationships').FirstChildElement('Relationship'); @@ -583,6 +594,8 @@ Type xlsxWorkBook = Class end end + if ifint(dest_ind) then return; + //workbook.xml.rels rid := getWorkbookRelsRid(); workbook_rels := GetXmlFileObj('xl/_rels/workbook.xml.rels'); @@ -592,6 +605,8 @@ Type xlsxWorkBook = Class rels.SetAttribute('Id', rid); //xl/workbook.xml + sheetId := vselect maxof(['sheetId']) from sheetNames_ end; + sheetId := integer(sheetId) + 1; workbook := GetXmlFileObj('xl/workbook.xml'); node := workbook.FirstChildElement('workbook').FirstChildElement('sheets').InsertEndChild('element','sheet'); node.SetAttribute('name', destSheet); @@ -734,7 +749,7 @@ Type xlsxWorkBook = Class Begin workbook := GetXmlFileObj('xl/workbook.xml'); node := class(TSXml).GetNode(workbook, 'workbook/sheets/sheet'); - if GetSheetsCount() = 1 then return "Only one sheet, can't set visible."; + if GetSheetsCount() = 1 then return "Only one sheet, can't set visible."; sheet := lowercase(sheet); default_sheet_name := lowercase(GetDefaultSheet()); if default_sheet_name = sheet and not visible then diff --git a/更新日志.md b/更新日志.md index 1c7663c..bf204a7 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,5 +1,18 @@ # 更新日志 +## 2023-11-14 + +### V1.5.0 + +#### word + +1. 新增对脚注的支持,方法`TSDocxFile.FootnotesObject().Add` +2. `TSDocxFile.InsertFile`支持脚注插入 + +### excel + +1. 升级`TSXlsxFile.CopySheet` + ## 2023-10-16 ### V1.4.9