如何通过delphi5.0程序语言控制,实现对excel中的单元格的操作(200分,急)(200分)

  • 主题发起人 主题发起人 liw66
  • 开始时间 开始时间
L

liw66

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过delphi5.0程序语言控制,实现对excel中的单元格的操作:
1.单元格合并
2.单元格中文字旋转90度
3.单元格长宽控制
以及打印设置中的网格打印?

假如有一字段为字符型值均为(00.00)格式现在作报表时,想用delphi5.0 的两个qRDBText控件,分别表示小数点前的两位数和小数点后的两位数?
 
1.aSheet.Range['A1','B1'].MergeCells:=True; //合并
2.我没找到,我好像没有看到过EXCEL上文字转90度,你能实现吗,告诉我过程.我再帮你转成
Delphi代码.
3.aSheet.Columns[1].columnWidth:=6; //宽度控制
4.aSheet.PageSetup.PrintGridlines:=True //网格打印
5.改qRDBText的Mask看看.为"00"表示小数点前两位,"0.00"表示0.15,表示后二位.我没试过.

另外,看看下面这个网站,和以前的贴子.
http://www.djpate.freeserve.co.uk/Automation.htm
一般的内容看下面这个贴子就够了.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=691080
 
procedure TstartForm.SpeedButton10Click(Sender: TObject);
var MSExcel:Variant;
begin
MSExcel:=CreateOLEObject('Excel.Application');
MSExcel.WorkBooks.Add;
MSExcel.Visible:=True;



for i:=5 to Query1.RecordCount+4 do
begin
MsExcel.Cells[i,1].value:=Query1.FieldByName('cpxhno').Asstring;
MsExcel.Cells[i,2].value:=Query1.FieldByName('cpname').Asstring;
MsExcel.Cells[i,3].value:=Query1.FieldByName('cpunit').Asstring;
MsExcel.Cells[i,4].value:=Query1.FieldByName('htnumber').Asstring;
MsExcel.Cells[i,5].value:=Query1.FieldByName('number').Asstring;
MsExcel.Cells[i,6].value:=Query1.FieldByName('ljno').Asstring;
end;
end;

退出Excel:
MSExcel.Quit;
MSExcel:=Unassigned; //释放VARIANT变
***************
先加入ExcelApplication1;ExcelWorkbook1;ExcelWorksheet1;
procedure TForm1.n1Click(Sender: TObject);
var
row,brea:integer;
a,b,c,d,e:shortstring;
begin
if table1.active = True then begin
try
ExcelApplication1.Connect;
Except
ExcelApplication1.free;
Abort;
end;
brea := strtoint(inputbox('输入需导入行数!','行数','10'));
if brea<1 then brea := 10;
ProgressBar1.Visible := True;
ProgressBar1.Max := brea;
ExcelApplication1.Visible[0] := true;
for row := 2 to brea do
begin
a := ExcelWorksheet1.Cells.Item[row,2];
b := ExcelWorksheet1.Cells.Item[row,1];
c := ExcelWorksheet1.Cells.Item[row,3];
d := ExcelWorksheet1.Cells.Item[row,4];
e := ExcelWorksheet1.Cells.Item[row,5];
form1.show;
table1.AppendRecord([a,b,c,d,e]);
ProgressBar1.Position := row-1;
end;
ProgressBar1.Hide;
end;
end;
*****************
var
MSExcel: Variant;
i: Integer;
begin
OpenDialog1.Filter:='*.XLS|*.XLS';
OpenDialog1.DefaultExt:='XLS';
if OpenDialog1.Execute then
begin
MSExcel:=CreateOLEObject('Excel.Application');
MSExcel.WorkBooks.Open(OpenDialog1.FileName);
MSExcel.Visible:=False;
//从有数据的行逐行读入数据
for i:=1 to MSExcel.ActiveSheet.UsedRange.Rows.Count do
begin
Edit2.Text:=Edit2.Text+MSExcel.Cells[i,1].Value;
end;
MSExcel.ActiveWorkBook.Close;
MSExcel.Quit;
end;
end;
 
說句實在的,你所需要的在excel的help中都可以找得到!我當初寫這些東西的時候都
是自己慢慢看的!你可以先看一下,會對你有幫助的!
 
合并和长宽控制他们已经说了,我就说说旋转
Excel_app.selection.Orientation:= 42;
 
旋转单元格中的文本

1 选择要旋转文本的单元格。
2 单击“格式”菜单中的“单元格”命令,然后单击“对齐”选项卡。
3 在“方向”框中,单击某一角度值,也可拖动指示器到所需要的角度。

要垂直显示文本,单击“方向”框下的垂直“文本”框。
 
问题已解决,谢谢大家的帮助
 
后退
顶部