楼主,找到办法了,可以用SheetDoc.Sheet.ColWidths[N]来获取每一列的宽度,只是这里的列要比数据集区域包含的列多,所以在计算时要注意一下
var
i, width: Integer;
begin
//DocViewDDSQB_DDBG.SetFocus; SheetDoc.Sheet.ColWidths[N]
width := 0;
for i := 0 to TSheetDoc(DocViewDDSQB_DDBG.Doc).Areas[0].Width-1 do
width := width + TSheetDoc(DocViewDDSQB_DDBG.Doc).Sheet.ColWidths;
panel1.Width := (Self.Width-Width) div 2;
end;