下面上代码,由于下面的代码是从源代码中截取并做了修改,可能会有语法错误,但主要语句是正确,请大家见谅。
引用ComObj
var
ExcelApp,vRange:Variant;
vRow:integer;
begin
try
ExcelApp := CreateOleObject ('Excel.Application'); //创建Excel对象
ExcelApp.Visible := False ;
ExcelApp.DisplayAlerts:=false;
ExcelApp.WorkBooks.Open(RzButtonEdit2.Text); //打开某个Excel文件
ExcelApp.WorkSheets[1].Activate; //激活第1个工作表
vRow:=5; //从第5行开始
while (vRow<=ExcelApp.ActiveSheet.UsedRange.Rows.Count) do
begin
vRange:=ExcelApp.ActiveSheet.Range[ExcelApp.ActiveSheet.Cells[vRow,7],ExcelApp.ActiveSheet.Cells[vRow,7]];
//重点,创建Range对象,范围是自己单元格本身,在Excel中相当于选中这个单元格
if vRange.MergeCells then //判断这个单元格是不是合并的
begin
ShowMessage(vRange.MergeArea.Cells[1,1].Value);
//单元格所在MergeArea的Cells[1,1]就是左上方第1格
end else
if not vRange.MergeCells then //不是合并单元格的直接访问Cell
begin
ShowMessage(ExcelApp.ActiveSheet.Cells[vRow,7].Value);
end;
Inc(vRow);
end;
Except
end;