TMS FlexCel 合并单元格
属性和方法
TXlsFile.MergeCells
procedure MergeCells(const firstRow: Integer; const firstCol: Integer; const lastRow: Integer; const lastCol: Integer);
将多个单元格合并为一个。
此方法可能返回比指定的范围更大的范围。 例如,如果您有一个合并单元格 (A1:C1),调用
MergeCells(1,2,2,2)
会将单元格与现有单元格合并,返回一个合并单元格 (A1:C2),而不是 (B1: B2)。Excel 支持合并单元格内中的单个行样式。 也就是说,可以只让合并单元格的前两列有线条,而其他列没有。 通常,在合并单元格后,您需要在范围上调用
TExcelFile.SetCellFormat(Integer, Integer, Integer)
以使它们都相似。 FlexCel默认不会这样做,以便给您选择。
参数
firstRow 合并单元格的第一行。
firstCol 合并单元格的第一列。
lastRow 合并单元格的最后一行。
lastCol 合并单元格的最后一列。
TXlsFile.CellMergedBounds
function CellMergedBounds(const row: Integer; const col: Integer): TXlsCellRange
单元格所在的合并范围。
参数
row 行索引( 索引从1开始)
col 列索引( 索引从1开始)
返回值
单元格所在的范围
如果在A1:B2范围内有一个合并单元格,则在任何单元格:A1、B1、A2、B2上调用
CellMergedBounds
将返回A1:B2。
例子
合并单元格
uses VCL.FlexCel.Core, FlexCel.XlsAdapter;
procedure TForm1.Button26Click(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;
//合并B1:C2
Xls.MergeCells(1, 2, 2, 3);
//输出信息
vRange := Xls.CellMergedBounds(1, 2);
Memo1.Lines.Add('合并范围 ' + vRange.CellRef);
Memo1.Lines.Add('单元格[' + vRange.Top.ToString + ',' + vRange.Left.ToString + ']' +
' 单元格[ ' + vRange.Bottom.ToString + ',' + vRange.Right.ToString + ']');
//再合并A2:B2,B1:C2已经合并,得到A1:C2
Xls.MergeCells(2, 1, 2, 2);
//输出信息
vRange := Xls.CellMergedBounds(1, 2);
Memo1.Lines.Add('合并范围 ' + vRange.CellRef);
Memo1.Lines.Add('单元格[' + vRange.Top.ToString + ',' + vRange.Left.ToString + '] 到' +
' 单元格[' + vRange.Bottom.ToString + ',' + vRange.Right.ToString + ']');
//保存文件
Xls.Save('C:\Users\Administrator\Desktop\ceshi.xlsx');
finally
Xls.Free;
end;
end;
标签:TMS,FlexCel,delphi,单元格,合并,vRange,ToString,Integer,Xls
From: https://www.cnblogs.com/txgh/p/16905509.html