Delphi6中操纵Excel,怎么对一行(或列)进行设置?(200分)

  • 主题发起人 主题发起人 hfpang
  • 开始时间 开始时间
H

hfpang

Unregistered / Unconfirmed
GUEST, unregistred user!
请注意是Delphi6,我看了以前的帖子,象这种:
Excelworksheet1.columns[1].columnWidth:=10; 是不行的,错误是:
Class does not have a default property
还有我把用了类似Columns(1),Columns['A']等等都是不行。
现在设置列宽可以用这样的办法:
Excelworksheet1.range['A1','A1'].columnwidth:=10;
这样第一列就都是一样的宽度了,可是我还要设置某列的对齐方式,
这个办法就不灵了。
哪位愿意回答的话请先试一下,确定可以了再给我,谢谢!
 
Excelworksheet1.range['A'].columnwidth:=10;
Excelworksheet1.range['A:C'].columnwidth:=10;

在 excel 中录制一下宏!

wBook.selection.HorizontalAlignment := -4108;
wBook.selection.VerticalAlignment := -4108;
 
拜托啦,这种写法你试试编译能不能通过?还有,列宽的问题已经解决,但问题还是需要
知道怎么才能操纵一个列或行,已进行其他属性设置。
 
问题在你的引用方式,这样写试试:
MsExcelWorkSheet.range['A1'].ColumnWidth:=10;
MsExcelWorkSheet.range['A1'].HorizontalAlignment = -4108;
...
 
uses .....comobj;


procedure TForm1.Button1Click(Sender: TObject);
var
MsExcel,wBook,wSheet:oleVariant;
begin
MsExcel:= CreateOleObject('Excel.Application');
WBook:=MsExcel.Application;
wbook.workbooks.add;
WBook.Visible:=True;
WSheet:=WBook.ActiveSheet;
wsheet.cells[1,1]:='AAAA';
wsheet.range['A1:C3'].select;
wbook.columns['A'].columnwidth:=30;
wbook.rows['1'].rowheight:=50;

// wsheet.application.selection.mergecells:=true; //合并单元格
wsheet.application.selection.font.size:=20;
wBook.selection.font.name:='黑体';

wBook.selection.HorizontalAlignment := -4108; //水平居中
wBook.selection.VerticalAlignment := -4108; //垂直居中

end;
 
jsxjd后面写的这个方法是对的,就是必须要先定义一个Variant变量,对这个变量可以
用象这样的 col.columns['A'].columnwidth:=10 写法,而如果直接写做:
ExcelWorksheet1.columns['A'].columnwidth:=10;是编译通不过的。
真是搞不懂为什么这样,不过现在问题是解决了,多谢大家!
 
后退
顶部