delphi TMS FlexCel 取消合并单元格

TMS FlexCel 取消合并单元格

属性和方法

TXlsFile.UnMergeCells

procedure UnMergeCells(const firstRow: Integer; const firstCol: Integer; const lastRow: Integer; const lastCol: Integer); 

取消合并单元格范围。 坐标必须准确,如果没有具有准确坐标的合并单元格,则不会执行任何操作。 如果要取消合并范围内的所有单元格,请改用 TExcelFile.UnMergeAllCellsInRange

参数

firstRow 合并单元格的第一行。

firstCol 合并单元格的第一列。

lastRow 合并单元格的最后一行。

lastCol 合并单元格的最后一列。

TXlsFile.UnMergeAllCellsInRange

procedure UnMergeAllCellsInRange(const firstRow: Integer; const firstCol: Integer; const lastRow: Integer; const lastCol: Integer; const fullyInside: Boolean);

此方法将取消合并单元格范围内的所有单元格。

参数

firstRow 范围的第一行。

firstCol 范围的第一列。

lastRow 范围的最后一行。

lastCol 范围的最后一列。

fullyInside 如果为 true,则合并的单元格必须完全在要取消合并的范围内。例如,如果文件有一个合并的单元格 A1:A5,并且调用 UnMergeAllCellsInRange(1, 1, 1, 1, true) A1:A5 将不会被取消合并,因为它并不完全在范围内。 如果为 false,则将取消合并范围内至少有一个单元格的所有合并单元格。 在合并单元格 A1:A5 的示例中,UnMergeAllCellsInRange(1, 1, 1, 1, false) 将取消合并的单元格,因为它的单元格 A1 包含在范围内。

TXlsFile.CellMergedListCount

property CellMergedListCount: Integer

合并单元格列表中合并单元格的数量。

TXlsFile.CellMergedList

function CellMergedList(const index: Integer): TXlsCellRange

合并单元格列表中位置索引处的合并单元格。

参数

index 列表中的索引( 索引从1开始)。

返回值

位置索引处的合并单元格。

例子

取消合并单元格

uses VCL.FlexCel.Core, FlexCel.XlsAdapter;

procedure TForm1.Button27Click(Sender: TObject);
var
  Xls: TXlsFile;
  I: Integer;
  vRange: TXlsCellRange;
begin
  //创建一个新的空Excel文件,使用Excel 2019格式
  Xls := TXlsFile.Create(1, TExcelFileFormat.v2019, true);
  try
    //添加内容
    for I := 1 to 5 do
    begin
      Xls.SetCellValue(I, 1, 'A' + I.ToString);
      Xls.SetCellValue(I, 2, 'B' + I.ToString);
      Xls.SetCellValue(I, 3, 'C' + I.ToString);
      Xls.SetCellValue(I, 4, 'D' + I.ToString);
    end;
    //合并A1:B1
    Xls.MergeCells(1, 1, 1, 2);
    //合并B2:C2
    Xls.MergeCells(2, 2, 2, 3);
    //合并A3:C4
    Xls.MergeCells(3, 1, 4, 3);
    //保存合并后文件
    Xls.Save('C:\Users\Administrator\Desktop\ceshi1.xlsx');
    //循环所有合并单元格
    for I := 1 to Xls.CellMergedListCount do
    begin
      vRange := Xls.CellMergedList(I);
      Memo1.Lines.Add('合并范围 ' + vRange.CellRef);
      Memo1.Lines.Add('单元格[' + vRange.Top.ToString + ',' + vRange.Left.ToString + '] 到' +
        ' 单元格[' + vRange.Bottom.ToString + ',' + vRange.Right.ToString + ']');
    end;
    //取消单个合并单元格A1:B1
    Xls.UnMergeCells(1, 1, 1, 2);
    //取消A2:C4范围内的所有合并单元格B2:C2和A3:C4
    Xls.UnMergeAllCellsInRange(2, 1, 4, 3, True);
    //取消C2:C3中包含在合并单元格范围内的合并单元格B2:C2和A3:C4
    Xls.UnMergeAllCellsInRange(2, 1, 4, 3, False);
    //保存取消合并后文件
    Xls.Save('C:\Users\Administrator\Desktop\ceshi2.xlsx');
  finally
    Xls.Free;
  end;
end;
posted @ 2022-11-19 09:55  txgh  阅读(104)  评论(0编辑  收藏  举报