要可以由用户自己设定文件名和保存路径。
现在要学习用delphi操作office系列的文件,delphi的联机帮助文件好象说得不大清楚,请问哪里可以找到学习资源?
现在要学习用delphi操作office系列的文件,delphi的联机帮助文件好象说得不大清楚,请问哪里可以找到学习资源?
解决方案 »
- 软件在退出时报错
- 简单的问题????
- 急。更改了DBCombox的数据(连接到DataSource1,DataSource1.dataset=adoquery),结果adoquery.post的时候
- 一个奇怪的问题,谁能帮帮我?谢谢...
- 我使用了TTable与TDBGrid 但我如何控制好保存与不保存
- ****分布式远程数据模块添加属性,方法的问题.
- 请问可显示字符的ASCⅡ值的范围
- 控件属性的恢复问题!
- 怎么删除显示在DBGrid上空白行?
- 如何直接在软件里面显示excel表格
- 如何自动生成一个订单号,且动生成的订单号是连续的,不重复的,用户环境为多用户环境,一个订单包含多条订购记录.
- DBGrid焦点转移时的保存问题
DBTables, Grids, StdCtrls, ExtCtrls, ComCtrls, Dialogs, OleCtrls,
OleCtnrs, OleServer, Excel2000;type
TOLE_Form1 = class(TForm)
Panel1: TPanel;
InsertBtn: TButton;
Table1: TTable;
Table1NAME: TStringField;
Table1SIZE: TSmallintField;
Table1WEIGHT: TSmallintField;
Table1AREA: TStringField;
Table1BMP: TBlobField;
ExcelApplication1: TExcelApplication;
OleContainer1: TOleContainer;
procedure InsertBtnClick(Sender: TObject);
end;var
OLE_Form1: TOLE_Form1;implementationuses ComObj;{$R *.DFM}procedure TOLE_Form1.InsertBtnClick(Sender: TObject);
var
aSheet, aChart, series: Variant;
i: integer;
begin
// 显示MS-Excel的运行过程
ExcelApplication1.Visible[0] := True; // 创建一个 WorkBook
ExcelApplication1.WorkBooks.Add(xlWBATWorksheet,0); // 获取 WorkBook 中的一页 WorkSheet
aSheet:=ExcelApplication1.Worksheets.Item[1]; // 将Animals.dbf的数据填入Sheet的Cells二维数组内
aSheet.Cells[1,1].Value:='大小';
aSheet.Cells[3,1].Value:='体重';
i := 2;
with Table1 do begin
Open;
First;
while not eof do begin
aSheet.Cells[1, i].Value:=FieldByName('Name').AsString;
aSheet.cells[2, i].Value:=FieldByName('Size').AsString;
aSheet.cells[3, i].Value:=FieldByName('Weight').AsString;
i:=i+1;
Next;
end;
end; // 在Sheet上加入一块空的统计图形
aChart := aSheet.ChartObjects.Add(100, 50, 200, 150);
series := aChart.chart.SeriesCollection; // 将Sheet上某段范围的数据画出对应的统计图表
series.Add('Sheet1!R1C1:R2C7', TRUE);
series.Add('Sheet1!R3C1:R3C7', TRUE); // 将数据存成Excel格式的文件
aSheet.SaveAs('C:\a.xls'); // 把 Excel 文件 Insert 到 OleContainer
OleContainer1.CreateObjectFromFile('C:\a.xls',False); // 结束MS-Excel的运行
aSheet.Application.Quit;
end;end.
var
xlsFilename :string;
eclApp,WorkBook :variant ;
a_filedNo,i,j :integer;
begin
if not SaveDialog1.Execute then
exit; //按下取消按钮
a_filedNo:=ADOQueryFX.FieldCount;
xlsfilename:=savedialog1.FileName+'.xls';
try
eclApp:=CreateOleObject('Excel.Application');
WorkBook :=CreateOleObject('Excel.Sheet');
except
showmessage('没有安装MS EXCEL');
exit;
end;
try
WorkBook:=eclApp.workBooks.add;
eclApp.cells[1,1]:='总拨打次数';
eclApp.cells[1,2]:='有效次数';
eclApp.cells[1,3]:=copy(comboboxy.Text,3,255);
ADOQueryFX.First ; //ADOQueryFX是一个查询记录集
for i :=1 to ADOQueryFX.RecordCount do
begin
for j :=1 to a_filedNo do
begin
eclApp.cells[i+1,j].value:=''+ADOQueryFX.Fields[j-1].asstring;
end;
ADOQueryFX.Next ;
end;
try
WorkBook.saveas(xlsFileName);
WorkBook.close;
except
showmessage('保存出错');
end;
except
WorkBook.close;
eclApp.quit;
eclApp :=Unassigned;
end;
end;这个程序在实际中我用来把一个查询结果导入EXCEL;
var
i,row,column:integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
ADOQuery1.Open;
row:=1;
While Not(ADOQuery1.Eof) do
begin
column:=1;
for i:=1 to ADOQuery1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=ADOQuery1.fields[i-1].AsString;
column:=column+1;
end;
ADOQuery1.Next;
row:=row+1;
end;
end;