如果把报表中的数据向excel中导入,若有多个工作表,每个工作表对应excel中的一个sheet,在导入的过程中第一页数据导入正确,后面的不正确,为什么?
是不是没有定好excel中的activeworksheet的问题,谢谢
是不是没有定好excel中的activeworksheet的问题,谢谢
解决方案 »
- 数组传递给函数
- 关于分页显示问题
- 如何对写字板操作,如对写字板中符合要求的某一行进行筛选等
- 如何能判断一文件已经写入磁盘后再打开它呢?
- 怎样只刷新数据集(SimpleDataSet)的当前记录(delphi7)
- 如何写这个打印程序
- 菜鸟请问大侠个问题:在image控件里画线,每画一条,就存入数据库,以后再次打开这个程序时就从数据库读取信息来显示线的条数和位置,如
- 怎么取opendialog1.filename的文件名? 如:opendialog1.filename:='c:\data\ddd.txt'我要取结果'ddd'
- 一个多线程数据库查询的实现
- delphi6企业版现在多少钱?
- 茫然之网络编程收发邮件~`急急!!
- 请问怎样在delphi中打开access数据库。(在线等待)
如何在Delphi5中把報表輸出為Excel格式 procedure TForm3.BitBtn2Click(Sender: TObject);
var f:textfile;
fs,str:string;
i,j,k:integer;
begin
if not query1.IsEmpty then
begin
if savedialog1.execute then
begin
fs:=savedialog1.filename;
assignfile(f,fs);
rewrite(f);
for i:=0 to query1.FieldCount-1 do
begin
begin
str:=query1.Fields[i].Displaylabel;
for j:=query1.Fields[i].datasize to 35 do
begin
str:=str+' ';
end;
write(f,str);
end;
end;
writeln(f,'');
query1.first;
for i:=0 to query1.RecordCount-1 do
begin
for j:=0 to query1.FieldCount-1 do
begin
str:=query1.Fields[j].Displaytext;
for k:=query1.Fields[j].datasize to 35 do
begin
str:=str+' ';
end;
write(f,str);
end;
writeln(f,'');
query1.next;
end;
filestr1:=fs;
closefile(f);
end;
end
else
begin
showmessage('empty table');
end;
query1.first;
end;################################################################################unit UseExcelExample;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComObj, StdCtrls, OleServer, Excel97;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
ExcelApplication,ExcelWorkSheet,SheetColumn:Variant;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
begin
ExcelApplication:=CreateOleObject('Excel.Application');
//装了Excel之后注册表中就有Excel.Application项,在HKEY_CLASSES_ROOT下 ExcelApplication.Visible:=true; ExcelApplication.caption:='Excel 标题'; ExcelApplication.workbooks.add(xlWorksheet);//加入一个WorkBook
//若add后面不加参数,则缺省生成含有3个WorkSheet 的WorkBook
//add后面加参数xlWorksheet,则生成含有1个WorkSheet 的WorkBook (=1好象也有同样的效果) ExcelApplication.workbooks[1].sheets.add;//加入一个WorkSheet
//加入n个WorkSheet:ExcelApplication.workbooks[1].sheets.add(,,n,); ExcelWorkSheet:=ExcelApplication.workbooks[1].sheets[1];
ExcelWorkSheet.name:='name'; //改变列属性
SheetColumn:=ExcelWorkSheet.Columns[1];
SheetColumn.ColumnWidth:=20;
SheetColumn.Font.Color:=clBlue;
SheetColumn.Font.Name:='宋体';
SheetColumn.Font.Size:=16;
SheetColumn.Font.Bold:=true;//粗体
SheetColumn.Font.Italic:=true;
SheetColumn.Font.UnderLine:=true;
//单元格赋值
ExcelWorkSheet.cells[1,1]:='s222';//写一个字符串
ExcelWorkSheet.cells[2,1]:=now;//写一个时间值
ExcelWorkSheet.cells[2,3]:=12345;//写一个整数
ExcelWorkSheet.cells[3,3]:=111.432;//写一个浮点数
//最好都转换成字符串,要不然excel可能会自动给你加一些¥之类的符号 ExcelWorkSheet.cells[3,4]:='=Sum(c2,c3)';//写一个公式 //改变单元格属性
ExcelWorkSheet.cells[2,3].Font.Color:=clRed;
ExcelWorkSheet.Range['a1:e6'].Borders.LineStyle:=xlContinuous;//画格
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
//关闭Excel
if not VarIsEmpty(ExcelApplication) then
begin
ExcelApplication.DisplayAlerts:=false;//Excel关闭前不进行保存提示
ExcelApplication.Quit;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
//访问WorkSheet里的数据
ShowMessage(ExcelWorkSheet.cells.item[2,1]);
end;end.