From addc41144e6bd549408a9a206d39da0047b51838 Mon Sep 17 00:00:00 2001 From: csh Date: Tue, 19 Sep 2023 10:10:29 +0800 Subject: [PATCH] v1.4.6 --- Demo/{ExcelHelp.tsl => XlsxHelp.tsl} | 46 +- DocxFile使用帮助.docx | Bin 81596 -> 82396 bytes ExcelFile使用帮助.xlsx | Bin 27806 -> 0 bytes XlsxFile使用帮助.xlsx | Bin 0 -> 28400 bytes funcext/TSOffice/TOfficeObj.tsf | 1225 ++++++++++--------- funcext/TSOffice/TSDocxFile.tsf | 2 +- funcext/TSOffice/TSExcelFile.tsf | 2 +- funcext/TSOffice/TSXlsxFile.tsf | 1058 ++++++++++++++++ funcext/TSOffice/document/TTableContent.tsf | 2 +- funcext/TSOffice/worksheet/xlsxWorkBook.tsf | 108 +- 更新日志.md | 19 + 11 files changed, 1784 insertions(+), 678 deletions(-) rename Demo/{ExcelHelp.tsl => XlsxHelp.tsl} (96%) delete mode 100644 ExcelFile使用帮助.xlsx create mode 100644 XlsxFile使用帮助.xlsx create mode 100644 funcext/TSOffice/TSXlsxFile.tsf diff --git a/Demo/ExcelHelp.tsl b/Demo/XlsxHelp.tsl similarity index 96% rename from Demo/ExcelHelp.tsl rename to Demo/XlsxHelp.tsl index b18cc9c..234b1ac 100644 --- a/Demo/ExcelHelp.tsl +++ b/Demo/XlsxHelp.tsl @@ -1,28 +1,28 @@ path := ExtractFileDir(ExtractFileDir(PluginPath())); {$IFNDEF Win32} - path := path + '\\funcext\\TSOffice\\TSExcelFile.tsf'; + path := path + '\\funcext\\TSOffice\\TSXlsxFile.tsf'; {$ELSE} - path := path + '/funcext/TSOffice/TSExcelFile.tsf'; + path := path + '/funcext/TSOffice/TSXlsxFile.tsf'; {$ENDIF} funcs := LoadClassInfo(path); testing := 1; -file := new TSExcelFile(); +file := new TSXlsxFile(); [err, errinfo] := file.NewFile(); if err then return PrintError("NewFile", err, errinfo); PrintSuccess("NewFile", testing++); -file.SetSheetName('Sheet1', 'ExcelFile'); +file.SetSheetName('Sheet1', 'XlsxFile'); PrintSuccess("SetSheetName", testing++); file.NewSheet("Functions"); PrintSuccess("NewSheet", testing++); -file.SetDefaultSheet('ExcelFile'); +file.SetDefaultSheet('TSXlsxFile'); richtext := TOfficeObj('TRichText'); -txt1 := richtext.AddText('TSExcelFile类 '); +txt1 := richtext.AddText('TSXlsxFile类 '); txt1.Font.Size := 35; txt1.Font.Color := "FF0000"; txt1.Font.Bold := 1; @@ -34,14 +34,14 @@ txt2.Font.Bold := 1; txt2.Font.Italic := 1; txt2.Font.Color := "FFC0CB"; -file.SetCellRichText('ExcelFile', 'A1', richtext); +file.SetCellRichText('XlsxFile', 'A1', richtext); PrintSuccess("SetCellRichText", testing++); -[err, richText] := file.GetCellRichText('ExcelFile', 'A1'); +[err, richText] := file.GetCellRichText('XlsxFile', 'A1'); if err then return PrintError("GetCellRichText", err, errinfo); PrintSuccess("GetCellRichText", testing++); -file.MergeCell('ExcelFile', 'A1', 'C1'); +file.MergeCell('XlsxFile', 'A1', 'C1'); PrintSuccess("MergeCell", testing++); @@ -65,15 +65,15 @@ style.Fill.Gradient.Stop2.Color := "E0EBF5"; styleId := file.NewStyle(style); PrintSuccess("NewStyle", testing++); -file.SetCellStyle("ExcelFile", 'A1', 'C1', styleId); +file.SetCellStyle("XlsxFile", 'A1', 'C1', styleId); -file.SetCellValue("ExcelFile", "A3", "索引"); -file.SetCellValue("ExcelFile", "B3", "函数名称"); -file.SetCellValue("ExcelFile", "C3", "功能"); -file.SetColWidth("ExcelFile", "A", "A", 6); -file.SetColWidth("ExcelFile", "B", "B", 55); -file.SetColWidth("ExcelFile", "C", "C", 100); -file.SetCellStyle("ExcelFile", "A3", "C3", styleId); +file.SetCellValue("XlsxFile", "A3", "索引"); +file.SetCellValue("XlsxFile", "B3", "函数名称"); +file.SetCellValue("XlsxFile", "C3", "功能"); +file.SetColWidth("XlsxFile", "A", "A", 6); +file.SetColWidth("XlsxFile", "B", "B", 55); +file.SetColWidth("XlsxFile", "C", "C", 100); +file.SetCellStyle("XlsxFile", "A3", "C3", styleId); style2 := TOfficeObj("TStyle"); @@ -108,9 +108,9 @@ Begin [err0, cell0] := file.CoordinatesToCellName(1, i+4); [err1, cell1] := file.CoordinatesToCellName(2, i+4); [err2, cell2] := file.CoordinatesToCellName(3, i+4); - file.SetCellValue("ExcelFile", cell0, i+1); - file.SetCellValue("ExcelFile", cell1, funcs[i]['funcname']); - file.SetCellValue("ExcelFile", cell2, funcs[i]['name']); + file.SetCellValue("XlsxFile", cell0, i+1); + file.SetCellValue("XlsxFile", cell1, funcs[i]['funcname']); + file.SetCellValue("XlsxFile", cell2, funcs[i]['name']); str := funcs[i]['name'] + "\nFunction " + funcs[i]['funcname'] + funcs[i]['comment']; arr := str2array(str, "\n"); @@ -130,15 +130,15 @@ Begin hyperlink.LinkType := "location"; hyperlink.LinkUrl := "Functions!" $ c1; - file.SetCellHyperLink("ExcelFile", cell1, hyperlink); - file.SetCellStyle("ExcelFile", cell1, cell1, styleId4); + file.SetCellHyperLink("XlsxFile", cell1, hyperlink); + file.SetCellStyle("XlsxFile", cell1, cell1, styleId4); End file.SetColWidth('Functions', 'A', 'A', 120); PrintSuccess('SetColWidth', testing++); -saveName := utf8toansi("ExcelFile使用帮助.xlsx"); +saveName := utf8toansi("XlsxFile使用帮助.xlsx"); [err, errinfo] := file.SaveAs('', saveName); if err then return PrintError("SaveAs", err, errinfo); diff --git a/DocxFile使用帮助.docx b/DocxFile使用帮助.docx index 47a36d6e5e3261e6faa98fabdb4adb485e423420..288976895e6c45d6b65d316fca8f37221cbc2470 100644 GIT binary patch delta 54386 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

Ve95#^ER_Bs2r0eSIW* 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 diff --git a/ExcelFile使用帮助.xlsx b/ExcelFile使用帮助.xlsx deleted file mode 100644 index b137f79d86655ac176c10cde2835e177da55e347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27806 zcmbTdWmFtb^eu|JTX1)m;1ULRcXtbt3{G$j?oP1a?yf-xcbDMq2`+EQ@4j{KTW`Jp zhsTHRsZ+alo!+OV(Dzi z>fvBNkhJRfiybA@xNwBU4q73jDE!v|S}M`Z60}9MJk<CoEM4#Kr+=PcNT!J*0or7Y>R?N#CiI6&CKAj<2o? zQ0m}-)_H18_ryX>6!X6C0Qdf&%e7HiRMmUS9)FT_Te472?qXJiT=_7XK|>IVAZHFM+Bm+#U7q~4bLW|dz_J}hfOU8D zO@^fZ4t4cnkEVe~+FynUdC7HEe^%TAPw6N6a3ax`_v3*L&+*3^ObJdptmVh;9Wk!I zgnzrUEXhaPdN zQ+UficZTPz#@y`b#(H#hT`2lEQT%kkR_6l^y_=N%g&wNY-IV zmiW@DpvvFg8yb7tjE&30wAgS%ff*=IrBmkBWb{^%0ukk(c1SFAs9Iz4uQ4(k9|%xA z)@+8AXZkl=35Ttj00-jFds;U~TTnY84{B(xRPC6wQ+Dw1BE$>9i8H5W)k#cMnKiEX%V=T2 z?yd&%p80D{oBw8{yl5ZH&$ojx>y@t}{iZToV&megjVy~t1JfzhRhx1-a4C+4a{dL& z{>4pWpcJQ4rwrSFBjJ_BcXtUvSiV=U3kwuPE%e2(R~W~a25-Z3OBf&cijT_wjqfhm z<`r$6dr~R2!-AJ+i?G0UBSB8P>|=C71LJtB*+V~ZpGL(}J?t{~*CF||77;h`*^SW$ zIYNH@genbZa-JS>V-w=Gt|k~$1^EFBMV!oVy#Tbggnh45T?%rSos5^wub>qpuNr8o zJWSmNZ3$c{y3z1-2{N4W40L!g>OaZ_G9@vS8}UmWZ-mTW;-^(YnP^ZwJ}I-3?_GeP zaUe#roStroIf=cWaV*f3gpzd5KO(YBMv5~jJ8zh>jqpP!6JsHdcB{a#G9^B{Ds{^O#kn+`zld8tTsZNmI6I1@H!(V}*8-2WQH^%v-f6JG^7?f3clC}f2mM(J-nYeCP^F-tU`q0FnhPnu-j<_D>qF&n z4!KDc_74ASEw)!mVvP5&(xF}eFR(H_wWaivQsT$koY#Hf)jL&}sgnkBwQ-ufyGwWX z@e~f*^oe{l1P{`L=ofM~DbeXsj3lg(7~G+y`e$mQ2lJ#cwNI;w^IL4jAl{m9PEs21 zy#BQ7lT^Z1tMlvI3-Y!CW1^y6 zA3H`!HKmpDsN0H)T#~&U#p;5vf81b7I18ffim|nG^2M zoLpZ%3IuOLt{KVgJ1*?8bLRTy#qs!cQ0?4yC+He{O5Y<5&3PI4`{7+gQ<`SA7qCP# zU?Km%p9%Q?yWTn5SX#O`v;8}9ycfP7S*wmad|08z11C=n16%~u1PxiXrv}XIOFNA_ z^x@M@xWjVAM3Fvs$&v#&k$=(QP{(@1)Lv-I?`u5{yB_wQOuO$FT#609br?n{&jY84 zo6mO6@4eff7e93yJnU`HImN_g`h2r@O#PHGd!5>zdDryhh@ܘvK-{$0 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 0 then zipfile_ := new ZipFile(); + [err, errmsg] := zipfile_.Open(alias, fname, passwd); + if err=0 then Begin + workbook_ := new xlsxWorkBook(zipfile_); + workbook_.Load(); + End; + return array(err, errmsg); + End; + + ///新建excel文件 + ///返回: [err, info] + Function NewFile(); + Begin + def := TOfficeTemplate('default.xlsx', true); + [err, errmsg] := zipfile_.LoadFromMem(def); + if err = 0 then + begin + workbook_ := new xlsxWorkBook(zipfile_); + workbook_.Load(); + end + return array(err, errmsg); + End; + + ///保存文件 + ///返回: [err, info] + Function Save(); + Begin + return zipfile_.Save(); + End; + + ///设置密码 + Function SetPassword(passwd) + Begin + zipfile_.Password := passwd; + End; + + ///打开二进制内容 + ///data: 二进制数据 + ///返回: [err, errmsg] + Function LoadFromMem(data); + Begin + [err, errmsg] := zipfile_.LoadFromMem(data); + if err = 0 then + begin + workbook_ := new xlsxWorkBook(zipfile_); + workbook_.Load(); + end + return array(err, errmsg); + End; + + ///保存为二进制内容 + ///返回: [err, fileContent] fileContent二进制文件内容 + Function SaveToMem(); + Begin + return zipfile_.Save2Mem(); + End; + + ///另存为 + ///alias: string,文件目录别名 + ///fname: string,文件名 + ///返回: [err, info] + Function SaveAs(alias, fname); + Begin + return zipfile_.Save(alias, fname); + End; + + ///真实文件名 + ///返回: string + Function FileName(); + Begin + return zipfile_.FileName(); + End; + + ///获取工作表列表 + ///返回: array('Sheet1','Sheet2') + Function GetSheets(); + Begin + sheets := workbook_.GetSheets(); + for i:=0 to length(sheets)-1 do + begin + sheets[i] := class(TSXml).Utf8ToCurCodePage(sheets[i]); + end + return sheets; + End; + + ///获取工作表数 + ///返回: integer + Function GetSheetsCount(); + Begin + return workbook_.GetSheetsCount(); + End; + + ///获取工作表名 + ///index: int,工作表索引 + ///返回: string + Function GetSheetName(index); + Begin + name := workbook_.GetSheetName(index); + return class(TSXml).Utf8ToCurCodePage(name); + End; + + ///创建新sheet + ///sheet: string,工作表名称 + Function NewSheet(sheet);overload; + Begin + return workbook_.NewSheet(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///在指定sheet之后插入新sheet + ///sourceSheet: string,指定工作表名称 + ///destSheet: string,目的工作表名称 + Function NewSheet(sourceSheet, destSheet);overload; + Begin + return workbook_.NewSheet(class(TSXml).CurCodePageToUtf8(sourceSheet), class(TSXml).CurCodePageToUtf8(destSheet)); + End; + + ///在指定sheet之前插入新sheet + ///sourceSheet: string,指定工作表名称 + ///destSheet: string,目的工作表名称 + Function InsertSheet(sourceSheet, destSheet); + Begin + return workbook_.InsertSheet(class(TSXml).CurCodePageToUtf8(sourceSheet), class(TSXml).CurCodePageToUtf8(destSheet)); + End; + + ///删除sheet + ///sheet: string,工作表名称 + Function DeleteSheet(sheet); + Begin + return workbook_.DeleteSheet(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///设置工作表名 + ///sourceName: string, 原工作表名 + ///destName: string, 目标工作表名 + Function SetSheetName(sourceName, destName); + Begin + return workbook_.SetSheetName(class(TSXml).CurCodePageToUtf8(sourceName), class(TSXml).CurCodePageToUtf8(destName)); + End; + + ///获取总列数 + ///sheet: string,工作表名称 + ///返回: int + Function TotalCols(sheet); + Begin + return workbook_.TotalCols(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///获取总行数 + ///sheet: string,工作表名称 + ///返回: int + Function TotalRows(sheet); + Begin + return workbook_.TotalRows(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///获取单元格的值 + ///sheet: string,工作表名称 + ///axis: string,单元格坐标,如: "A6" + ///返回: [err, value:string] + Function GetCellValue(sheet, axis); + Begin + [err, value] := workbook_.GetCellValue(class(TSXml).CurCodePageToUtf8(sheet), axis); + if not err then return array(err, class(TSXml).Utf8ToCurCodePage(value)); + return array(err, value); + End; + + ///获取单元格数据类型 + ///sheet: string,工作表名称 + ///axis: string,单元格坐标,如: "A6" + ///返回: type:string + Function GetCellValueType(sheet, axis); + Begin + return workbook_.GetCellValueType(class(TSXml).CurCodePageToUtf8(sheet), axis); + End; + + ///设置单元格的值 + ///sheet: string,工作表名称 + ///axis: string,单元格坐标,如: "A6" + ///val: Var,可以是整数、字符串、数值型等;nil 不设置值(可以调用ClearCell方法清空单元格),只设置属性 + ///[opt:Tany],可选参数,单元格属性,可以是xml字符串或天软数组 + /// xml串:opt := ''; + /// 数组: opt := array('t':'s', 's':'1'); + /// 属性t:单元格数据类型,不设置的话,数据类型为val的数据类型; + /// t ->('s' 共享字符串、'b' bool 类型、'e' 错误类型、'inlineStr' 内联字符串类型、nil 数字类型、'str' 公式类型) + /// 属性s:单元格样式 + Function SetCellValue(sheet, axis, val, opt); + Begin + sheet_name := class(TSXml).CurCodePageToUtf8(sheet); + value := class(TSXml).CurCodePageToUtf8(val); + return workbook_.SetCellValue(sheet_name, axis, value, opt); + End; + + ///获取富文本格式 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///返回: [err, richtxt:string],参见SetCellRichText + Function GetCellRichText(sheet, axis); + Begin + [err, str] := workbook_.GetCellRichText(class(TSXml).CurCodePageToUtf8(sheet), axis); + if err then return array(err, str); + else return array(err, class(TSXml).Utf8ToCurCodePage(str)); + End; + + ///设置富文本格式 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///richtext: string,xml串或富文本对象TSOfficeObj('TRichText') + Function SetCellRichText(sheet, axis, richtext); + Begin + o := workbook_.GetSheetObj(class(TSXml).CurCodePageToUtf8(sheet)); + if ifObj(o) then + begin + xml := richtext; + if ifObj(richtext) then + xml := class(TSXml).Dom2Xml(richtext.Marshal()); + return o.SetCellValue(axis, xml, array('t':'s'), 'RichText'); + end + End; + + ///清空单元格 + ///sheet: string,工作表名称 + ///[topLeft: string],左上角坐标,可选参数 + ///[bottomRight: string],右下角坐标,可选参数, + /// 用法1:ClearCell(); //Clear整个sheet + /// 用法2:ClearCell('A2'); //Clear 'A2'单元格 + /// 用法3:ClearCell('A5', 'D8'); //Clear矩形区间所有单元格 + Function ClearCell(sheet, topLeft, bottomRight); + Begin + return workbook_.ClearCell(class(TSXml).CurCodePageToUtf8(sheet), topLeft, bottomRight); + End; + + ///设置公式 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///formula: string,公式 + Function SetCellFormula(sheet, axis, formula); + Begin + return workbook_.SetCellFormula(class(TSXml).CurCodePageToUtf8(sheet), axis, formula); + End; + + ///获取公式 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///返回: [err, formula:string] + Function GetCellFormula(sheet, axis); + Begin + return workbook_.GetCellFormula(class(TSXml).CurCodePageToUtf8(sheet), axis); + End; + + ///按行赋值 + ///sheet: string,工作表名称 + ///axis: string,起始坐标,如: "A4" + ///slice: array(),一维数组array(1,2,3,2,1,"hello") + Function SetSheetRow(sheet, axis, slice); + Begin + [err, col, row] := CellNameToCoordinates(axis); + if not err then + begin + for i:=0 to length(slice)-1 do + begin + [err, cell] := CoordinatesToCellName(col + i, row); + SetCellValue(sheet, cell, slice[i]); + end + end + End; + + ///插入数据表 + ///sheet: string,工作表名称 + ///axis: string,左上角坐标,如: "A4" + ///data: table,数据表 + ///[IncludeHeader: bool] 是否包括表头,默认FALSE + ///[IncludeIndex: bool] 是否自动添加索引号,默认FALSE + ///返回: [err, info] + Function InsertTable(sheet, axis, data, IncludeHeader, IncludeIndex); + Begin + if not ifarray(data) or length(data)=0 then + return array(-1, "Invalid Data."); + if FieldCount(data)=0 then Begin //数据是一维数组 + return SetSheetRow(sheet, axis, data); + End; + [err, colNum, rowNum] := CellNameToCoordinates(axis); + if err then + return array(err, colNum); + if IncludeHeader then Begin + fields := FieldNames(data); + if IncludeIndex then Begin + fields := array("Index") union fields; + End; + SetSheetRow(sheet, axis, fields); + rowNum ++; + End; + if IncludeIndex then Begin + for i:=0 to length(data)-1 do Begin + [err, cell] := CoordinatesToCellName(colNum, rowNum + i); + if err then + return array(err, cell); + SetCellValue(sheet, cell, i+1); + End; + colNum ++; + End; + for i:=0 to length(data)-1 do Begin + [err, cell] := CoordinatesToCellName(colNum, rowNum + i); + if err then + return array(err, cell); + t := sselect * from data where thisrowindex = i End; + SetSheetRow(sheet, cell, t); + if err then + return array(err, info); + End; + return array(0, "OK"); + End; + + ///读取数据表 + ///sheet: string,工作表名称 + ///topLeft: string,左上角坐标,如: "A4" + ///bottomRight: string,右下角坐标,如: "B8",为空获取从topLeft开始的整张表 + ///[IncludeHeader: bool] 是否包括表头,默认FALSE + ///[IncludeIndex: bool] 是否包括索引号,默认FALSE + ///返回: table + Function GetTable(sheet, topLeft, bottomRight, includeHeader, includeIndex, forceSingle); + Begin + return workbook_.GetTable(class(TSXml).CurCodePageToUtf8(sheet), topLeft, bottomRight, includeHeader, includeIndex, forceSingle); + End; + + ///插入列,在指定列前插入空白列 + ///sheet: string,工作表名称 + ///col: string 列名,如: "D" + Function InsertCol(sheet, col); + Begin + return workbook_.InsertCol(class(TSXml).CurCodePageToUtf8(sheet), col); + End; + + ///插入行,在指定行前插入空白行 + ///sheet: string,工作表名称 + ///row: int + Function InsertRow(sheet, row); + Begin + return workbook_.InsertRow(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///删除列 + ///sheet: string,工作表名称 + ///col: string,如: "D" + Function RemoveCol(sheet, col); + Begin + return workbook_.RemoveCol(class(TSXml).CurCodePageToUtf8(sheet), col); + End; + + ///删除行 + ///sheet: string,工作表名称 + ///row: int + Function RemoveRow(sheet, row); + Begin + return workbook_.RemoveRow(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///设置行高度 + ///sheet: string,工作表 + ///row: int,行 + ///height: double,行高[0-409] + Function SetRowHeight(sheet, row, height); + Begin + return workbook_.SetRowHeight(class(TSXml).CurCodePageToUtf8(sheet), row, height); + End; + + ///获取行高度 + ///sheet: string,工作表 + ///row: int,行 + ///返回: double + Function GetRowHeight(sheet, row); + Begin + return workbook_.GetRowHeight(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///设置列宽度 + ///sheet: string,工作表 + ///startcol: string,开始列,如: "A" + ///endcol: string,结束列,如: "D" + ///width: double,列宽[0-255] + Function SetColWidth(sheet, startCol, endCol, width); + Begin + return workbook_.SetColWidth(class(TSXml).CurCodePageToUtf8(sheet), startCol, endCol, width); + End; + + ///获取列宽度 + ///sheet: string,工作表 + ///col: string,列 + ///返回: double + Function GetColWidth(sheet, col); + Begin + return workbook_.GetColWidth(class(TSXml).CurCodePageToUtf8(sheet), col); + End; + + ///设置工作表默认列宽 + ///sheet: string,工作表 + ///width: double + Function SetSheetDefaultColWidth(sheet, width); + Begin + return workbook_.SetSheetDefaultColWidth(class(TSXml).CurCodePageToUtf8(sheet), width); + End; + + ///获取工作表默认列宽 + ///sheet: string,工作表 + ///返回: double + Function GetSheetDefaultColWidth(sheet); + Begin + return workbook_.GetSheetDefaultColWidth(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///添加批注 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///Author:string + ///comment: string + Function AddComment(sheet, axis, Author, comment); + Begin + o := getOj(sheet, 'xlsxComment'); + if ifObj(o) then return o.AddComment(axis, Author, comment); + End; + + ///获取批注 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///返回: [author:string, comment: string] + Function GetComment(sheet, axis); + Begin + author := nil; + comment := nil; + o := getOj(sheet, 'xlsxComment'); + if ifObj(o) then [author, comment] := o.GetComment(axis); + return array(class(TSXml).Utf8ToCurCodePage(author), class(TSXml).Utf8ToCurCodePage(comment)); + End; + + ///移除批注 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + Function RemoveComment(sheet, axis); + Begin + o := getOj(sheet, 'xlsxComment'); + if ifObj(o) then return o.RemoveComment(axis); + End; + + ///添加图表 + ///sheet: string,工作表名称 + ///range:string,图表所处矩形区域,"A5:F10" + ///chart:TChart对象 + Function AddChart(sheet, range, chart); + Begin + o := getOj(sheet, 'xlsxChart'); + if ifObj(chart) then return o.AddChart(range, chart); + End; + + ///获取图表列表 + ///sheet: string,工作表名称 + ///返回: [err, ChartList] + Function GetCharts(sheet); + Begin + return workbook_.GetCharts(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///单元格坐标切分 + ///cell: string,单元格坐标 + ///返回: [err, col:string, row:int],"AK47" -> return array(0, "AK", 47); + Function SplitCellName(cell); + Begin + return SplitCellName(cell); + End; + + ///列名转索引 + ///name: string + ///返回 [err, index:int],"AK" -> return array(0, 37); + Function ColumnNameToNumber(name); + Begin + return ColumnNameToNumber(name); + End; + + ///索引转列名 + ///index: int + ///返回 [err, name:string],37 -> return array(0, "AK"); + Function ColumnNumberToName(index); + Begin + return ColumnNumberToName(index); + End; + + ///单元格坐标转索引 + ///cell: string + ///返回 [err, col:int, row: int] "A2" -> [1,2] + Function CellNameToCoordinates(cell); + Begin + return CellNameToCoordinates(cell); + End; + + ///索引转单元格坐标 + ///col: int + ///row: int + ///abs: bool ,true返回"$A$1"格式,false返回"A1"格式 + ///返回 [err, cell:string] [1,2,true] -> "$A$2" + Function CoordinatesToCellName(col, row, abs); + Begin + return CoordinatesToCellName(col, row, abs); + End; + + ///RGB与HSL色彩空间色值转换 + ///r: int + ///g: int + ///b: int + ///返回: [h:double, s:double, l:double] + Function RGBToHSL(r, g, b); + Begin + return RGBToHSL(r, g, b); + End; + + ///HSL与RGB色彩空间色值转换 + ///h: double + ///s: double + ///l: double + ///返回: [r:int, g:int, b:int] + Function HSLToRGB(h, s, l); + Begin + return HSLToRGB(h, s, l); + End; + + ///新建样式对象 + ///style: TStyle对象 + ///返回: styleid + Function NewStyle(style); overload; + Begin + styleObj := new xlsxStyles('', self); + return styleObj.GetStyleId(style); + End; + + ///新建样式对象,已存在样式的基础上返回新的样式Id + ///style: TStyle对象 + ///oldStyleId: 已存在的styleId + ///返回: styleid + Function NewStyle(style, oldStyleId); overload; + Begin + styleObj := new xlsxStyles('', self); + return styleObj.GetStyleId(style, oldStyleId); + End; + + ///获取样式对象 + ///返回: TStyle对象 + Function GetStyle(styleid); + Begin + styleObj := new xlsxStyles('', self); + return styleObj.GetStyle(styleid); + End; + + ///设置单元格样式 + ///sheet: string,工作表名称 + ///topLeft: string,左上角坐标 + ///bottomRight: string,右下角坐标 + ///styleid: string,样式Id + Function SetCellStyle(sheet, topLeft, bottomRight, styleid); + Begin + return workbook_.SetCellStyle(class(TSXml).CurCodePageToUtf8(sheet), topLeft, bottomRight, styleid); + End; + + ///获取单元格样式Id,获取到的Id可以在复制单元格样式时,作为调用 SetCellValue、或SetCellStyle 函数的参数使用。 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///返回: styleId: string + Function GetCellStyle(sheet, axis); + Begin + return workbook_.GetCellStyle(class(TSXml).CurCodePageToUtf8(sheet), axis); + End; + + ///设置工作表页眉页脚 + ///sheet: string,工作表名称 + ///headerFooter: THeaderFooter对象 + Function SetSheetHeaderFooter(sheet, headerFooter); + Begin + o := getOj(sheet, 'xlsxHeaderFooter'); + if ifObj(o) then o.SetHeaderFooter(headerFooter); + End; + + ///设置工作表可见性 + ///sheet: string, 工作表名称 + ///visible: boolean + Function SetSheetVisible(sheet, visible); + Begin + return workbook_.SetSheetVisible(class(TSXml).CurCodePageToUtf8(sheet), visible); + End; + + ///获取工作表可见性 + ///sheet: string,工作表名称 + ///visibility: boolean + Function GetSheetVisible(sheet); + Begin + return workbook_.GetSheetVisible(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///设置行可见性 + ///sheet: string,工作表 + ///row: int,行 + ///visible: boolean + Function SetRowVisible(sheet, row, visible) + Begin + return workbook_.SetRowVisible(class(TSXml).CurCodePageToUtf8(sheet), row, visible); + End; + + ///获取工作表行可见性 + ///sheet: string,工作表名称 + ///row: int, 行 + ///返回: [err, visible:boolean] + Function GetRowVisble(sheet, row); + Begin + return workbook_.GetRowVisble(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///设置列可见性 + ///sheet: string,工作表 + ///col: string,列,如:'A' + ///visible: boolean + Function SetColVisible(sheet, col, visible) + Begin + [err, col] := ColumnNameToNumber(col); + if err then return "Col error."; + return workbook_.SetColVisible(class(TSXml).CurCodePageToUtf8(sheet), col, visible); + End; + + ///获取列可见性 + ///sheet: string,工作表名称 + ///col: string,列 + ///返回: [err, visible:int] + Function GetColVisble(sheet, col); + Begin + [err, col] := ColumnNameToNumber(col); + if err then return array(-1, col); + return workbook_.GetColVisble(class(TSXml).CurCodePageToUtf8(sheet), col); + End; + + ///设置工作表页边距 + ///sheet: string,工作表名称 + ///margins: TMargins 对象 + Function SetPageMargins(sheet, margins); + Begin + return workbook_.SetPageMargins(class(TSXml).CurCodePageToUtf8(sheet), margins); + End; + + ///获取工作表页边距 + ///sheet: string,工作表名称 + ///返回: TMargins对象 + Function GetPageMargins(sheet); + Begin + return workbook_.GetPageMargins(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///合并单元格 + ///sheet: string,工作表名称 + ///hcell: string,左上角坐标 + ///vcell: string,右下角坐标 + Function MergeCell(sheet, hcell, vcell); + Begin + return workbook_.MergeCell(class(TSXml).CurCodePageToUtf8(sheet), hcell, vcell); + End; + + ///取消合并单元格 + ///sheet: string,工作表名称 + ///hcell: string,左上角坐标 + ///vcell: string,右下角坐标 + Function UnMergeCell(sheet, hcell, vcell); + Begin + return workbook_.UnMergeCell(class(TSXml).CurCodePageToUtf8(sheet), hcell, vcell); + End; + + ///新建窗口 + ///返回:windowsIndex int, 窗口索引 + Function NewSheetPane(); + Begin + return workbook_.NewSheetView(); + End; + + ///设置窗格 + ///sheet: string,工作表名称 + ///windowsIndex: int,窗口索引,从0开始 + ///Pane: TPane对象 + Function SetPane(sheet, windowsIndex, Pane); + Begin + o := getOj(sheet, 'xlsxSheetView'); + if ifObj(o) then return o.SetPane(windowsIndex, Pane); + End; + + ///设置工作表视图属性 + ///sheet: string,工作表名称 + ///windowsIndex: int,窗口索引,从0开始 + ///sheet: object,TSheetView对象 + Function SetSheetViewOptions(sheet, windowsIndex, sheetView); + Begin + o := getOj(sheet, 'xlsxSheetView'); + if ifObj(o) then return o.SetSheetViewOptions(windowsIndex, sheetView); + End; + + ///获取工作表视图属性 + ///sheet: string,工作表名称 + ///windowsIndex: int,窗口索引,从0开始 + ///返回: object, TSheetView对象 + Function GetSheetViewOptions(sheet, windowsIndex); + Begin + o := getOj(sheet, 'xlsxSheetView'); + if ifObj(o) then return o.GetSheetViewOptions(windowsIndex); + End; + + // TODO printerSettings1.bin? + ///设置工作表页面布局 + ///sheet: string,工作表名称 + ///pageLayout: TPageLayout对象,属性: + Function SetPageLayout(sheet, pageLayout); + Begin + o := getOj(sheet, 'xlsxPageLayout'); + if ifObj(o) then return o.SetPageLayout(class(TSXml).CurCodePageToUtf8(sheet), pageLayout); + End; + + ///获取工作表页面布局 + ///sheet: string,工作表名称 + ///返回: TPageLayout对象 + Function GetPageLayout(sheet); + Begin + o := getOj(sheet, 'xlsxPageLayout'); + if ifObj(o) then return o.GetPageLayout(); + return "error sheet"; + End; + + ///设置默认工作表 + ///sheet: string,工作表名称 + Function SetDefaultSheet(sheet); + Begin + return workbook_.SetDefaultSheet(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///获取默认工作表 + ///返回: string,工作表名称 + Function GetDefaultSheet(); + Begin + sheet := workbook_.GetDefaultSheet(); + return class(TSXml).Utf8ToCurCodePage(sheet); + End; + + ///设置超链接 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///hyplink: THyperLink对象 + Function SetCellHyperLink(sheet, axis, hyperlink); + Begin + o := getOj(sheet, 'xlsxHyperLink'); + if ifObj(o) then return o.SetCellHyperLink(axis, hyperlink); + End; + + // TODO 返回的结果有点问题 + ///获取超链接 + ///sheet: string,工作表名称 + ///axis: string,单元格,如"A7" + ///返回: THyperLink对象 + Function GetCellHyperLink(sheet, axis); + Begin + o := getOj(sheet, 'xlsxHyperLink'); + if not ifObj(o) then return array(1, 'The sheet is not exist.'); + return o.GetCellHyperLink(axis); + End; + + ///设置工作表背景图片 + ///picture: TPicture图片对象 + Function SetSheetBackground(sheet, picture); + Begin + o := getOj(sheet, 'xlsxImage'); + if ifObj(o) then return o.SetSheetBackground(picture); + End; + + ///添加图片 + ///sheet: string, 工作表名称 + ///topLeft: string, 图片插入左上角单元格 + ///bottomRight: string, 图片插入右下角单元格 + ///picture: TPicture 图片对象 + ///format: TPictureFormat 图片设置对象 + Function AddPicture(sheet, topLeft, bottomRight, picture, format); + Begin + o := getOj(sheet, 'xlsxImage'); + if ifObj(o) then return o.AddPicture(topLeft, bottomRight, picture, format); + End; + + ///删除图片 + ///sheet: 工作表名称 + ///topLeft: string, 图片插入左上角单元格 + ///bottomRight: string, 图片插入右下角单元格 + Function DeletePicture(sheet, topLeft, bottomRight); + Begin + o := getOj(sheet, 'xlsxImage'); + if ifObj(o) then return o.DeletePicture(topLeft, bottomRight); + End; + + ///创建表格 + ///sheet: string,工作表名称 + ///topLeft: string, 左上角单元格 + ///bottomRight: string, 右下角单元格 + ///tableStyle: 表格选项类 TTableStyle + ///[includeHeader: bool] 是否包括表头,默认FALSE + Function AddTable(sheet, topLeft, bottomRight, tableStyle, includeHeader); + Begin + o := getOj(sheet, 'xlsxTable'); + if ifObj(o) then return o.AddTable(topLeft, bottomRight, tableStyle, includeHeader); + End; + + ///指定行前插入分页符 + ///sheet: string,工作表名称 + ///row: int,行号 + Function InsertPageBreak(sheet, row); + Begin + return workbook_.InsertPageBreak(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///删除指定行分页符 + ///sheet: string,工作表名称 + ///row: int,行号 + Function RemovePageBreak(sheet, row); + Begin + return workbook_.RemovePageBreak(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + ///添加形状 + ///sheet: string,工作表名称 + ///topLeft: string, 左上角单元格 + ///bottomRight: string, 右下角单元格 + ///shapeType: string, 形状类型 + ///format: 形状设置,TShapeFormat类 + Function AddShape(sheet, topLeft, bottomRight, shapeType, format); + Begin + o := getOj(sheet, 'xlsxShape'); + if ifObj(o) then return o.AddShape(topLeft, bottomRight, shapeType, format); + End; + + ///设置工作簿的核心属性 + ///coreProps: TCoreProperty对象 + Function SetCoreProps(coreProps); + Begin + o := getOj('', 'xlsxDocProps'); + if ifObj(o) then return o.SetCoreProps(coreProps); + End; + + ///获取工作簿的核心属性 + ///返回: TCoreProperty对象 + Function GetCoreProps(); + Begin + o := getOj('', 'xlsxDocProps'); + if ifObj(o) then return o.GetCoreProps(); + End; + + ///设置工作簿应用程序属性 + ///appProps: TAppProperty对象,属性: + Function SetAppProps(appProps); + Begin + o := getOj('', 'xlsxDocProps'); + if ifObj(o) then return o.SetAppProps(appProps); + End; + + ///获取应用程序属性 + ///返回: TAppProperty对象 + Function GetAppProps(); + Begin + o := getOj('', 'xlsxDocProps'); + return o.GetAppProps(); + End; + + ///复制Sheet + ///sourceSheet: 源工作表 + ///destSheet: 目的工作表 + Function CopySheet(sourceSheet, destSheet); + Begin + return workbook_.CopySheet(class(TSXml).CurCodePageToUtf8(sourceSheet), class(TSXml).CurCodePageToUtf8(destSheet)); + End; + + ///保护工作表 + ///sheet: 工作表 + ///protect: TProtect对象 + Function ProtectSheet(sheet, protect); + Begin + return workbook_.ProtectSheet(class(TSXml).CurCodePageToUtf8(sheet), protect); + End; + + ///取消保护工作 + ///sheet: 工作表 + Function UnProtectSheet(sheet); + Begin + return workbook_.UnProtectSheet(class(TSXml).CurCodePageToUtf8(sheet)); + End; + + ///设置默认字体 + ///font: TFont对象 + Function SetDefaultFont(font); + Begin + return workbook_.SetDefaultFont(font); + End; + + ///获取默认字体 + ///返回: TFont对象 + Function GetDefaultFont(); + Begin + return workbook_.GetDefaultFont(); + End; + + ///设置工作簿计算选项 + ///calcPr: TCalcPr对象 + Function SetCalcOptions(calcPr); + Begin + return workbook_.SetCalcOptions(calcPr); + End; + + ///获取工作簿计算选项 + ///返回: TCalcPr对象 + Function GetCalcOptions(); + Begin + return workbook_.GetCalcOptions(); + End; + + ///创建行的分级显示,根据给定的工作表、行号和分级参数创建组 + ///sheet: string, 工作表名称 + ///row: int, 行号 + ///level: int, 分级参数 + Function SetRowOutlineLevel(sheet, row, level); + Begin + return workbook_.SetRowOutlineLevel(class(TSXml).CurCodePageToUtf8(sheet), row, level); + End; + + ///获取行的分级参数 + ///sheet: string, 工作表名称 + ///row: int, 行号 + ///返回: int,分级参数,分级不存在返回0 + Function GetRowOutlineLevel(sheet, row); + Begin + return workbook_.GetRowOutlineLevel(class(TSXml).CurCodePageToUtf8(sheet), row); + End; + + /// + + ///创建列的分级显示,根据给定的工作表、列名和分级参数创建组 + ///sheet: string, 工作表名称 + ///col: string, 列名 + ///level: int, 分级参数 + Function SetColOutlineLevel(sheet, col, level); + Begin + [err, col] := ColumnNameToNumber(col); + if err then return "Col error."; + return workbook_.SetColOutlineLevel(class(TSXml).CurCodePageToUtf8(sheet), col, level); + End; + + ///获取列的分级参数 + ///sheet: string, 工作表名称 + ///col: string, 列名 + ///返回: int,分级参数,分级不存在返回0 + Function GetColOutlineLevel(sheet, col); + Begin + [err, col] := ColumnNameToNumber(col); + if err then return "Col error."; + return workbook_.GetColOutlineLevel(class(TSXml).CurCodePageToUtf8(sheet), col); + End; + + Function WorkBook(); + Begin + return workbook_; + End; + + Function Zip(); + Begin + return zipfile_; + End; + +private + Function getOj(sheet, objname); + Begin + sheetname := class(TSXml).CurCodePageToUtf8(sheet); + if not ifarray(objMgr_) then objMgr_:= array(); + k := sheetname + '.' + objname; + o := objMgr_[ k ]; + if not ifnil(o) then return o; + case objname of + 'xlsxMargin': + o := class(xlsxMargin).NewObject(sheetname, self); + 'xlsxComment': + o := class(xlsxComment).NewObject(sheetname, self); + 'xlsxStyles': + o := class(xlsxStyles).NewObject(sheetname, self); + 'xlsxChart': + return class(xlsxChart).NewObject(sheetname, self);//不缓存xlsxChart对象 + 'xlsxHeaderFooter': + o := class(xlsxHeaderFooter).NewObject(sheetname, self); + 'xlsxSheetView': + o := class(xlsxSheetView).NewObject(sheetname, self); + 'xlsxPageLayout': + o := class(xlsxPageLayout).NewObject(sheetname, self); + 'xlsxDocProps': + return class(xlsxDocProps).NewObject(self); + 'xlsxImage': + o := class(xlsxImage).NewObject(sheetname, self); + 'xlsxHyperLink': + o := class(xlsxHyperLink).NewObject(sheetname, self); + 'xlsxShape': + o := class(xlsxShape).NewObject(sheetname, self); + 'xlsxTable': + o := class(xlsxTable).NewObject(sheetname, self); + End; + if ifObj(o) then objMgr_[k] := o; + return o; + End; + + zipfile_; //压缩文件对象 + workbook_; //WorkBook对象 + objMgr_; //各种对象缓存、管理 +End; diff --git a/funcext/TSOffice/document/TTableContent.tsf b/funcext/TSOffice/document/TTableContent.tsf index a746a7b..0004d00 100644 --- a/funcext/TSOffice/document/TTableContent.tsf +++ b/funcext/TSOffice/document/TTableContent.tsf @@ -142,7 +142,7 @@ Type TTableContent = class Begin ///获取标题列表 array((("Level":level,"Paragraph":"object","Text":title,"numId":,"ilvl":,"numArr":)); numMap := array(); - r := docx_.Document().Body().GetHeadingListImpl(docx_, posOpt, UpperHeadingLevel, LowerHeadingLevel, numMap, true); + r := docx_.Document().Body().GetHeadingListImpl(docx_, -1, UpperHeadingLevel, LowerHeadingLevel, numMap, true); for i:=0 to length(r)-1 do Begin p := _AddItem(UpperHeadingLevel, LowerHeadingLevel, r[i]['Level'], i = 0 ? true: false); //fldCharType diff --git a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf index ddb75bd..fb73d9f 100644 --- a/funcext/TSOffice/worksheet/xlsxWorkBook.tsf +++ b/funcext/TSOffice/worksheet/xlsxWorkBook.tsf @@ -166,64 +166,71 @@ Type xlsxWorkBook = Class Begin lname := LowerCase(sheet); if ifint(sheetIndexMap_[ lname ]) then return 'The sheet already exists.'; - rid := getWorkbookRelsRid(); + fname := sheetPrefix_ $ inttostr(sheetsCount_ + 1) $ '.xml'; + sheetId := addSheetN(fname); + rid := setWorkbookRels(); + setWorkbookSheet(sheet, sheetId, rid); + setDocPropsApp(sheet); + setContentTypes(fname); + + sheetNames_[sheetsCount_]['name'] := sheet; + sheetNames_[sheetsCount_]['sheetId'] := sheetId; + sheetNames_[sheetsCount_]['rid'] := rid; + sheetNames_[sheetsCount_]['file'] := fname; + sheetIndexMap_[ lname ] := sheetsCount_; + sheetsCount_ ++; + SetDefaultSheet(sheet); + End; + + Function addSheetN(fname); + Begin //添加文件xl/worksheets/sheetN.xml sheetId := vselect maxof(['sheetId']) from sheetNames_ end; sheetId := integer(sheetId) + 1; - fname := sheetPrefix_ $ inttostr(sheetsCount_ + 1) $ '.xml'; zipfile_.Add(fname, class(TSXml).XmlHeader() + class(TSXml).GetTemplate('sheet1')); + return sheetId; + End; + Function setWorkbookRels(); + Begin + rid := getWorkbookRelsRid(); //设置 workbook.xml.rels workbook_rels := GetXmlFileObj('xl/_rels/workbook.xml.rels'); rels := workbook_rels.FirstChildElement('Relationships').InsertEndChild('element', 'Relationship'); rels.SetAttribute('Target', getTarget( sheetsCount_ + 1)); rels.SetAttribute('Type', class(TSXml).GetTemplate('RelationshipWorkSheet')); rels.SetAttribute('Id', rid); - //workbook_rels.Print; + return rid; + End; + Function setWorkbookSheet(sheetName, sheetId, rid); + Begin //设置 xl/workbook.xml workbook := GetXmlFileObj('xl/workbook.xml'); node := workbook.FirstChildElement('workbook').FirstChildElement('sheets').InsertEndChild('element','sheet'); - node.SetAttribute('name', sheet); + node.SetAttribute('name', sheetName); node.SetAttribute('sheetId', sheetId); node.SetAttribute('r:id', rid); - //workbook.Print(); + End; + Function setDocPropsApp(sheet); + Begin //设置docProps/app.xml app := GetXmlFileObj(class(TSXml).GetFileName('docProps_app')); - //app.Print(); - node := app.FirstChildElement('Properties').FirstChildElement('TitlesOfParts'); - if not ifObj(node) then Begin - node := app.FirstChildElement('Properties').InsertEndChild('element','TitlesOfParts'); - End; - vector := node.FirstChildElement('vt:vector'); - if not ifObj(vector) then Begin - vector := node.InsertEndChild('element', 'vt:vector'); - vector.SetAttribute('baseType', 'lpstr'); - vector.SetAttribute('size', length(sheetNames_) + 1); - for i:=0 to length(sheetNames_)-1 do Begin - vector.InsertEndChild('element', 'vt:lpstr', sheetNames_[i]['name']); - End; - End - else - vector.SetAttribute('size', length(sheetNames_) + 1); + vector := class(TSXml).GetNode(app, 'Properties/TitlesOfParts/vt:vector'); + vector.SetAttribute('size', length(sheetNames_) + 1); vector.InsertEndChild('element', 'vt:lpstr', sheet); - //app.Print(); + End; + Function setContentTypes(fname); + Begin //设置[Content_Types].xml content_xml := GetXmlFileObj(class(TSXml).GetFileName('Content_Types')); class(TSXml).AddOverrideContentType(content_xml, '/' + fname, class(TSXml).GetTemplate('sheetContentType')); - - sheetNames_[sheetsCount_]['name'] := sheet; - sheetNames_[sheetsCount_]['sheetId'] := sheetId; - sheetNames_[sheetsCount_]['rid'] := rid; - sheetNames_[sheetsCount_]['file'] := fname; - sheetIndexMap_[ LowerCase(sheet) ] := sheetsCount_; - sheetsCount_ ++; - SetDefaultSheet(sheet); End; + Function NewSheet(sourceSheet, destSheet);overload; Begin lname := LowerCase(destSheet); @@ -726,23 +733,25 @@ Type xlsxWorkBook = Class Function SetSheetVisible(sheet, visible); Begin workbook := GetXmlFileObj('xl/workbook.xml'); - node := workbook.FirstChildElement('workbook').FirstChildElement('sheets').FirstChildElement('sheet'); - hidden := visible = 1 ? 0 : 1; - default_sheet_name := GetDefaultSheet(); - if default_sheet_name = sheet then + node := class(TSXml).GetNode(workbook, 'workbook/sheets/sheet'); + 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 begin ind := sheetIndexMap_[LowerCase(default_sheet_name)]; - if ind = 0 then default_name := sheetNames_[ind + 1]['name']; - else default_name := sheetNames_[ind - 1]['name']; + default_name := ind = 0 ? sheetNames_[1]['name'] : sheetNames_[ind - 1]['name']; SetDefaultSheet(default_name); end + if visible then SetDefaultSheet(sheet); + state := visible ? "nohidden" : "hidden"; while ifObj(node) do Begin - name := node.GetAttribute('name'); + name := lowercase(node.GetAttribute('name')); if name = sheet then Begin - if hidden then node.SetAttribute('state', 'hidden'); - else node.DeleteAttribute('state'); + node.SetAttribute('state', state); + break; End node := node.NextElement(); End @@ -753,11 +762,12 @@ Type xlsxWorkBook = Class Begin sheet_file := GetSheetXmlFile(sheet); if not ifObj(sheet_file) then return 0; + sheet := lowercase(sheet); workbook := GetXmlFileObj('xl/workbook.xml'); - node := workbook.FirstChildElement('workbook').FirstChildElement('sheets').FirstChildElement('sheet'); + node := class(TSXml).GetNode(workbook, 'workbook/sheets/sheet'); while ifObj(node) do Begin - name := node.GetAttribute('name'); + name := lowercase(node.GetAttribute('name')); if name = sheet then Begin val := node.GetAttribute('state'); @@ -1104,23 +1114,11 @@ Type xlsxWorkBook = Class node := sheet_node.InsertFirstChild('element', 'sheetView'); node.SetAttribute('workbookViewId', 0); end - if name = sheet then + if lowercase(name) = lowercase(sheet) then Begin node.SetAttribute('tabSelected', 1); workbook := GetXmlFileObj('xl/workbook.xml'); - workbook_node := workbook.FirstChildElement('workbook'); - book_view_node := workbook_node.FirstChildElement('bookViews'); - if not ifObj(book_view_node) then - begin - prev_node := class(TSXml).GetWorkBookPrevNode(workbook_node, 'bookViews'); - if not ifObj(prev_node) then book_view_node := workbook_node.InsertFirstChild('element', 'bookViews'); - else book_view_node := workbook_node.InsertAfterChild(prev_node, 'element', 'bookViews'); - end; - view_node := book_view_node.FirstChildElement('workbookView'); - if not ifObj(view_node) then - begin - view_node := book_view_node.InsertFirstChild('element', 'workbookView'); - end + view_node := class(TSXml).GetNode(workbook, 'workbook/bookViews/workbookView'); view_node.SetAttribute('activeTab', ind); End else diff --git a/更新日志.md b/更新日志.md index 40be208..d77d9e8 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,5 +1,24 @@ # 更新日志 +## 2023-9-19 + +### V1.4.6 + +#### word + +1. 修复表格存在合并单元格,生成目录报错问题 +2. 修复单元格添加run对象,设置样式不生效问题 + +### excel + +🔔 重要升级:`TSExcelFile`更名为`TSXlsxFile`,建议更改,旧名字现阶段仍可使用 + +1. 整理`NewSheet`和`SetSheetVisible`代码 + +#### excel + +1. 修复`NewSheet`excel打开遇到提示错误问题 + ## 2023-8-30 ### V1.4.5