我 现在有excel源程序,但是不能解决你的所有问题,等过一下我解决了就发给你!
解决方案 »
- 概念!关键还是概念。。。大家讨论一下midas
- delphi+ado+sqlserver的一个问题
- 急!!!关于线程的问题
- 求助 运行delphi时出错 [Fatal Error] Main_unit.pas(9): File not found: 'TeeURL.dcu'
- 关于事务的问题?
- 为什么我的D6中的XMLDOCUMENT组件显示的XML文件中不能有中文
- 如何用SQL语句取得某一字段中给定长度的所有记录?
- 如何实现用进度条表示Adotable中数据输出到文件的进度??(用多线程)
- 怎么进入“大富翁论坛”?
- 定义了一个tedit数组,怎样给每个数组成员定义触发事件,例如ONEXIT?
- 如何用VC读取硬盘系列号
- 一个与数据库有关的问题(各位兄弟帮帮手)
OK!我的分数给你留着!!!!
TO XNAKE
介绍一下!!下控件地址呢???
HOPE.................................
unit example;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Excel97, OleServer, Buttons, Spin,comobj, AxCtrls, OleCtrls;type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
BitBtn1: TBitBtn;
Edit1: TEdit;
Button4: TButton;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
Button5: TButton;
Button6: TButton;
Button7: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
begin
Try
ExcelApplication1.Connect;
Except
End;
ExcelApplication1.Visible[0]:=True;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
end;procedure TForm1.Button2Click(Sender: TObject);
var
Temp_Worksheet: _WorkSheet;
begin
Try
Temp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;//(注意)
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
Except
ShowMessage('Failure');
End;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Try
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
Except
End;end;procedure TForm1.ComboBox1DropDown(Sender: TObject);
var
i: Integer;
begin
ComboBox1.Clear;
For i:=1 to ExcelWorkbook1.Worksheets.Count do
ComboBox1.Items.Add((ExcelWorkbook1.Worksheets.Item[i] as _WorkSheet).Name);
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item[ComboBox1.ItemIndex+1] as _WorkSheet);
ExcelWorkSheet1.Activate;
end;procedure TForm1.ComboBox2DropDown(Sender: TObject);
var
i: Integer;
begin
ComboBox2.Clear;
if ExcelApplication1.Workbooks.Count >0 then
For i:=1 to ExcelApplication1.Workbooks.Count do
Combobox2.Items.Add(ExcelApplication1.Workbooks.Item[i].Name);
end;procedure TForm1.ComboBox2Change(Sender: TObject);
begin
ExcelWorkSheet1.Disconnect;
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[Combobox2.ItemIndex+1]);
ExcelWorkBook1.Activate;
ExcelWorksheet1.ConnectTo(ExcelWorkBook1.ActiveSheet as _WorkSheet);
ExcelWorkSheet1.Activate;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
ExcelWorksheet1.Cells.Item[SpinEdit2.Value,SpinEdit1.Value]:=Edit1.Text;
end;procedure TForm1.Button5Click(Sender: TObject);
begin
Edit1.Text:=ExcelWorksheet1.Cells.Item[SpinEdit2.Value,SpinEdit1.Value];
end;procedure TForm1.Button6Click(Sender: TObject);
begin
ExcelWorkSheet1.Range['A1','C1'].Select;
end;procedure TForm1.Button7Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Begin
Try
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open(OpenDialog1.FileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
Except;
End;
End;
end;end.
打开Excel97。
Try
ExcelApplication1.Connect;
Except
End;
ExcelApplication1.Visible[0]:=True;
增加一个Workbook。
ExcelWorkbook1.ConnectTo(ExcelApplication1.
Workbooks.Add(EmptyParam,0));添加一个Worksheet。
var
Temp_Worksheet: _WorkSheet;
begin
Try
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,
EmptyParam,EmptyParam,EmptyParam,0)
as _WorkSheet;//(注意)
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
Except
ShowMessage('Failure');
End;
end;
关闭Excel.
Try
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
Except
End;---- 4. 对Excel的一些操作:
选择当前Workbook的某一Worksheet.
procedure TForm1.ComboBox1DropDown
(Sender: TObject);
var
i: Integer;
begin
ComboBox1.Clear;
For i:=1 to ExcelWorkbook1.
Worksheets.Count do
ComboBox1.Items.Add
((ExcelWorkbook1.Worksheets.Item[i]
as _WorkSheet).Name);
end;procedure TForm1.ComboBox1Change
(Sender: TObject);
begin
ExcelWorkSheet1.ConnectTo
(ExcelWorkbook1.Worksheets.Item
[ComboBox1.ItemIndex+1] as _WorkSheet);
ExcelWorkSheet1.Activate;
end;选择某一Workbook:
procedure TForm1.ComboBox2DropDown
(Sender: TObject);
var
i: Integer;
begin
ComboBox2.Clear;
if ExcelApplication1.Workbooks.Count >0 then
For i:=1 to ExcelApplication1.Workbooks.Count do
Combobox2.Items.Add(ExcelApplication1.
Workbooks.Item[i].Name);
end;procedure TForm1.ComboBox2Change(Sender: TObject);
begin
ExcelWorkSheet1.Disconnect;
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.
Item[Combobox2.ItemIndex+1]);
ExcelWorkBook1.Activate;
ExcelWorksheet1.ConnectTo(ExcelWorkBook1.
ActiveSheet as _WorkSheet);
ExcelWorkSheet1.Activate;
end;对某一单元格进行赋值及取值。
procedure TForm1.Button5Click(Sender: TObject);
begin
ExcelWorksheet1.Cells.Item[SpinEdit2.Value,
SpinEdit1.Value]:=Edit1.Text;
end;procedure TForm1.Button6Click(Sender: TObject);
begin
Edit1.Text:=ExcelWorksheet1.Cells.Item[
SpinEdit2.Value,SpinEdit1.Value];
end;选择某一区域
ExcelWorkSheet1.Range['A1','C1'].Select;打开一个Excel文件。
if OpenDialog1.Execute then
Begin
Try
ExcelWorkBook1.ConnectTo
(ExcelApplication1.Workbooks.Open
(OpenDialog1.FileName,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,
EmptyParam,EmptyParam,0));
ExcelWorkSheet1.ConnectTo
(ExcelWorkBook1.Activesheet
as _Worksheet);
Except;
End;
End;
---- 说明
---- 本程序在Win98+Delphi 5+Excel 97下运行通过。本例子还可以作适当的扩充,如DDE、执行宏调用、保存文件、打印文件及对Excel的设置等,此设置方法请参阅Microsoft Excel Visual Basic参考中的Microsoft Excel对象。
这是我写的两个过程,第一个过程用户画表格线,第二个过程用户合并单元格。
使用方法十分简单,你只需要将所选择的区域的range对象以参数传递给相应的过程即可。
procedure drawtableline(range:variant);
begin
range.Borders[5].LineStyle := -4142;
range.Borders[6].LineStyle := -4142;
range.Borders[7].LineStyle := 1;
range.Borders[7].ColorIndex := -4105;
range.Borders[8].LineStyle := 1;
range.Borders[8].ColorIndex := -4105;
range.Borders[9].LineStyle := 1;
range.Borders[9].ColorIndex := -4105;
range.Borders[10].LineStyle := 1;
range.Borders[10].ColorIndex := -4105;
range.Borders[11].LineStyle := 1;
range.Borders[11].ColorIndex := -4105;
range.Borders[12].LineStyle := 1;
range.Borders[12].ColorIndex := -4105;
end;
procedure hbtablecells(range:variant);
begin
range.HorizontalAlignment:=-4108;
range.VerticalAlignment:=-4160;
range.WrapText:=False;
range.Orientation:=0;
range.AddIndent:=False;
range.ShrinkToFit:=False;
range.MergeCells:=False;
range.Merge;
end;
建议:当遇到困难时,比如需要复杂的样式时,
你可以自己在Excel或Word中录制宏,然后选择
编辑该宏,查看相应的VBA源程序,这是VBA程
序源的捷径。只是在其中有好多的微软定义的
常量。幸好我可以将这个库提供给你,你只需
将VBA源程序改成object pascal代码,然后将
这些常量换成我给你得知就可以了。这个单元
文件我已经给你用邮件发过去了。http://go.163.com/~ssudi
[email protected]
lsscxy2263.net
使用F1BOOK控件来处理此问题:先用DELPHI语句控制F1BOOK中的输入格式然后再由F1BOOK的另存为EXCEL文件(可惜只支持EXCEL5版本)
第二个问题!!!!!??????