Excel列宽度和DBGrid的宽度一样(100分)

  • 主题发起人 主题发起人 zcm1975117
  • 开始时间 开始时间
Z

zcm1975117

Unregistered / Unconfirmed
GUEST, unregistred user!
我将DBGrid的数据传入到Excel中,怎样才能使Excel列宽度和DBGrid的宽度一样!
 
请问你是用什么方法怎么传?若是用ApplicationExcel,
var aSheet:Variant;
begin
EA1.Connect;
EA1.Visible[0]:=False;
EA1.Workbooks.Add(xlWBATWorkSheet,0);
aSheet:=EA1.Worksheets.Item[1];
aSheet.Columns[1].columnWidth:=DBGrid.Fields[0].DisplayWidth;
end;
 
你的这个方法是不错,不过有一个条件,那就是Table或者Query的字段不能是永久的,否则这个
宽度数值传到到EXCEL就会是永久字段的宽度,面我只想是在DBGRID上的宽度.
另外我再请问教一下:
怎么样在这种方式下调用EXCEL的宏(excel.application);
 
使用Ehlib的DbGridEh+TXLSWrite;
var xlsW:TXLSWrite;
r,c:integer
begin
r:=0;
With DBGridEh,xlsWdo

While not DataSource.Datasetdo
begin

for i:=0 to VisibleColumns.Count-1do
begin
Case VisibleColumns.Field.DataType of
ftInteger,ftLargeInt,ftWord:
WriteNumber(i,r,-1,VisibleColumns.Field.AsInteger);
ftCurrency, ftFloat:
WriteNumber(i,CurRow,4,VisibleColumns.Field.AsFloat);
ftString,ftMemo:
WriteString(i,r,-1,VisibleColumns.Field.AsString);
end;
DataSource.Dataset.next;
inc(r)
end
end;
写了个大概,具体还有每个单元格的格式,边框都可以设置,我觉得挺不错的。
 
多人接受答案了。
 
后退
顶部