fix: Excel sheet Move fails on zh-CN Excel due to null optional COM args

This commit is contained in:
yu 2026-11-02 16:00:26 +08:00
parent bf70cf92e5
commit 32ac14a36f

View File

@ -136,8 +136,8 @@ const moveSheet: CapabilityHandler = async (_ctx, node, args) => {
elseif(${psString(mode)} -eq "按位置"){ $p=${psString(position)}; if($p -eq "第一位"){$targetIndex=1}elseif($p -eq "最后一位"){$targetIndex=$count}else{ $delta=-1; if($p -eq "向后移一位"){$delta=1}; $targetIndex=$sheet.Index+$delta } }
else { $targetIndex=${index}; if($targetIndex -lt 0){$targetIndex=$count+$targetIndex+1} };
$targetIndex=[Math]::Min([Math]::Max(1,$targetIndex),$count);$target=$workbook.Worksheets.Item($targetIndex);
if(${afterMode}){ if($target.Index -ne $sheet.Index){ $sheet.Move($null,$target)|Out-Null } }
else { if($target.Index -ne $sheet.Index){ $sheet.Move($target,$null)|Out-Null } }`;
if(${afterMode}){ if($target.Index -ne $sheet.Index){ $sheet.Move([Type]::Missing,$target)|Out-Null } }
else { if($target.Index -ne $sheet.Index){ $sheet.Move($target)|Out-Null } }`;
await runExcelCom(filePath, body, bool(args.save));
return { moved: true };
};
@ -285,4 +285,4 @@ register("Excel_Cs_Export", exportPdf);
register("Excel_Cs_ExcelAddin", runMacro("code"));
register("Excel_Cs_SetSlicer", setSlicer);
register("Excel_Loop", excelLoop);
register("Excel_ExportRangeAsPicture", exportRangePicture);
register("Excel_ExportRangeAsPicture", exportRangePicture);