EXCEL 报表输出(100分)

  • 主题发起人 主题发起人 mozi268
  • 开始时间 开始时间
M

mozi268

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟最近做了一个物业管理的项目,客户要求有报表要输出成EXCEL,
不知哪有这方面的好一点的控件啊,最好是中文的!
 
EXECEL输出用OLE就可以了啊
 
控件名称:TDataSetExport 总大小:900K
http://asp.6to23.com/bcbcn/control/dncontrol.asp?id=140
 
procedure TFrmMain.MakeExportXltFile(filename:string);
var
XLApp: Variant;
Sheet: Variant;
begin
try
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible := false;
except
showmessage('您没有安装Ms Excel ,不能使用本功能') ;
exit;
end;
with DataModule2.ADOQuery1do
begin
close;
SQL.clear;
SQL.Add(StrSQLForExcel+OrderStr);
open;
end;
if DataModule2.ADOQuery1.IsEmpty then
begin
showmessage('当前的查询条件下找不到任何打印记录');
exit;
end;

if FileExists(FileName) then
begin
if MessageBox(handle,Pchar('存在相同名的文件。是否覆盖?'),Pchar('打印监控系统'),MB_YESNO) = IDYES then
DeleteFile(Pchar(SaveDialog1.FileName))
else
exit;
end;

Application.CreateForm(Twaitform, waitform);
waitform.Show();
Application.ProcessMessages;
self.Enabled :=false;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name :='打印统计';
Sheet := XLApp.Workbooks[1].WorkSheets['打印统计'];
Sheet.Cells[1,1]:='文档名';
Sheet.Cells[1,2]:='打印人';
Sheet.Cells[1,3]:='打印机';
Sheet.Cells[1,4]:='打印时间';
Sheet.Cells[1,5]:='页数';
Sheet.Cells[1,6]:='大小(Byte)';
Sheet.Cells[1,7]:='图幅';
Sheet.Cells[1,8]:='系统';
Sheet.Cells[1,9]:='出图类型';
Sheet.Cells[1,10]:='打印份数';
Sheet.Cells[1,11]:='颜色';

sheet.cells[2,1].copyfromrecordset(DataModule2.ADOQuery1.recordset);
try
sheet.Saveas(filename);
except
showmessage('请确定文件'+filename+'没有被打开');
end;

XLApp.Quit;
waitform.close();
showmessage('Export Success!');
self.Enabled :=true;
end;
procedure TFrmMain.BitBtnExportClick(Sender: TObject);
begin
SaveDialog1.InitialDir := 'c:/';
SaveDialog1.FileName := 'Excel.xls';
if SaveDialog1.Execute then
begin

MakeExportXltFile(SaveDialog1.FileName);
end;
end;
 
我用的数据库是mysql 控件用的是Table1,
gmc001能否说明白一点,你用的是哪几个控件?
 
兄弟们,这事很急啊,快点!!!
 
我用的是ADOQuery和EXCEL对象
 
使用F1控件
 
f1对象好像不大好吧。
excel对象那具体要如何用啊,我试了一下你的程序好像不行!
能否再仔细的说明一下!
 
f1对象好像不大好吧。
excel对象那具体要如何用啊,我试了一下你的程序好像不行!
能否再仔细的说明一下!
 
多人接受答案了。
 
用RBuilder就可以。
 
后退
顶部