This commit is contained in:
csh 2023-12-18 11:33:26 +08:00
parent 91f3c5af49
commit fcb2a8e7b3
5 changed files with 26 additions and 18 deletions

View File

@ -1,4 +1,4 @@
// Version 1.5.3 // Version 1.5.4
Function TOfficeObj(n); Function TOfficeObj(n);
Begin Begin
case lowercase(n) of case lowercase(n) of
@ -5743,9 +5743,9 @@ type TwrPr=class(NodeInfo)
,('field':'Em','name':'w:em','obj':Em,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'强调标志的类型,取值:"comma", "dot", "circle", "underDot", "none"', 'class':'') ,('field':'Em','name':'w:em','obj':Em,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'强调标志的类型,取值:"comma", "dot", "circle", "underDot", "none"', 'class':'')
,('field':'Imprint','name':'w:imprint','obj':Imprint,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'刻雕效果', 'class':'') ,('field':'Imprint','name':'w:imprint','obj':Imprint,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'刻雕效果', 'class':'')
,('field':'Vanish','name':'w:vanish','obj':Vanish,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'隐藏', 'class':'') ,('field':'Vanish','name':'w:vanish','obj':Vanish,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'隐藏', 'class':'')
,('field':'Italic','name':'w:i','obj':Italic,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'斜体', 'class':'') ,('field':'Italic','name':'w:i','obj':Italic,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'斜体', 'class':'')
,('field':'ICs','name':'w:iCs','obj':ICs,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'斜体,适用于从右到左语言文本', 'class':'') ,('field':'ICs','name':'w:iCs','obj':ICs,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'斜体,适用于从右到左语言文本', 'class':'')
,('field':'Strike','name':'w:strike','obj':Strike,'attrEx':'','nodeType':'empty','attrName':'', 'desc':'单个删除线', 'class':'') ,('field':'Strike','name':'w:strike','obj':Strike,'attrEx':'w:val','nodeType':'empty','attrName':'', 'desc':'单个删除线', 'class':'')
,('field':'dStrike','name':'w:dstrike','obj':dStrike,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'两个删除线', 'class':'') ,('field':'dStrike','name':'w:dstrike','obj':dStrike,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'两个删除线', 'class':'')
,('field':'kern','name':'w:kern','obj':kern,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'字体紧排', 'class':'') ,('field':'kern','name':'w:kern','obj':kern,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'字体紧排', 'class':'')
,('field':'Sz','name':'w:sz','obj':Sz,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'字体大小', 'class':'') ,('field':'Sz','name':'w:sz','obj':Sz,'attrEx':'w:val','nodeType':'','attrName':'', 'desc':'字体大小', 'class':'')
@ -10946,6 +10946,7 @@ Type TParagraph = Class(DocObject, TParagraphImpl)
///返回TRun对象 ///返回TRun对象
Function AppendRun(run);overload; Function AppendRun(run);overload;
Begin Begin
node := run.NodeUri <> '' ? class(TSXml).GetNode(run.Root(), run.NodeUri) : run.Root();
node := node_.InsertAfterChild(run.Root(), 'element','w:r'); node := node_.InsertAfterChild(run.Root(), 'element','w:r');
node.InsertFirstChild('element', 'w:rPr'); node.InsertFirstChild('element', 'w:rPr');
return new TRun(node); return new TRun(node);
@ -11340,19 +11341,19 @@ Type TRun = Class(DocObject, TRunImpl)
///清除字体格式 ///清除字体格式
Function ClearFormat(); Function ClearFormat();
Begin Begin
rPr := node_.FirstChildElement('w:rPr'); rpr_node := node_.FirstChildElement('w:rPr');
if ifObj(rPr) then if ifObj(rpr_node) then
node_.DeleteChild(rPr); node_.DeleteChild(rpr_node);
End; End;
Function CopyFontFormat(fromRun); Function CopyFontFormat(fromRun);
Begin Begin
ClearFormat(); ClearFormat();
rPr := fromRun.node_.FirstChildElement('w:rPr'); rpr_node := fromRun.node_.FirstChildElement('w:rPr');
if not ifObj(rPr) then if not ifObj(rpr_node) then
return; return;
data := rPr.Marshal(); data := rpr_node.Marshal();
node_.InsertFirstChild(data[0]); node_.InsertFirstChild(data[0]);
End; End;

View File

@ -1,4 +1,4 @@
// Version 1.5.3 // Version 1.5.4
Type TSDocxFile = Class Type TSDocxFile = Class
///Version: V1.0 2022-09-20 ///Version: V1.0 2022-09-20
///适用于 Microsoft Word docx格式文件 ///适用于 Microsoft Word docx格式文件

View File

@ -1,4 +1,4 @@
// Version 1.5.3 // Version 1.5.4
Type TSXlsxFile = Class Type TSXlsxFile = Class
///Version: V1.0 2022-08-08 ///Version: V1.0 2022-08-08
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。 ///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
@ -350,11 +350,10 @@ Type TSXlsxFile = Class
colNum ++; colNum ++;
End; End;
for i:=0 to length(data)-1 do Begin for i:=0 to length(data)-1 do Begin
[err, cell] := CoordinatesToCellName(colNum, rowNum + i); for j:=0 to length(data[i])-1 do Begin
if err then [err, cell] := CoordinatesToCellName(colNum + j, rowNum + i);
return array(err, cell); SetCellValue(sheet, cell, data[i][j]);
t := sselect * from data where thisrowindex = i End; End;
SetSheetRow(sheet, cell, t);
if err then if err then
return array(err, info); return array(err, info);
End; End;

View File

@ -110,7 +110,7 @@ Type xlsxWorkBook = Class
o := GetSheetObj(sheet); o := GetSheetObj(sheet);
if ifObj(o) then if ifObj(o) then
begin begin
if not o.CellIsExists(axis) and (ifnil(opt) or (istable(opt) and ifnil(opt['s']))) then if (ifnil(opt) or ifnil(opt['s'])) and not o.CellIsExists(axis) then
begin begin
[err, col, row] := CellNameToCoordinates(axis); [err, col, row] := CellNameToCoordinates(axis);
xml := GetSheetXmlFile(sheet); xml := GetSheetXmlFile(sheet);

View File

@ -1,5 +1,13 @@
# 更新日志 # 更新日志
## 2023-12-18
### V1.5.4
#### excel
1. 优化`InsertTable`的写入效率
## 2023-12-11 ## 2023-12-11
### V1.5.3 ### V1.5.3