报表怎样转成Excel文件(100分)

  • 主题发起人 主题发起人 hzklmr
  • 开始时间 开始时间
H

hzklmr

Unregistered / Unconfirmed
GUEST, unregistred user!
请问用什么方法可以将报表转成Excel文件?
 
难那~~~
如果是dbgrid还好一点,报表又不一定有“行、列”的概念!
 
dbgrideh不就直接有导EXCEL的方法了吗???
 
用ReportMachine吧,导到excel中的效果和报表一模一样.
 
如果报表不是很复杂就自己写函数好些,给个例子
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp,MyWorkBook:Variant;
i :byte;
s: string;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
except
on Exceptiondo
raise exception.Create('无法打开Xls文件,请确认已
经安装EXCEL')
end;
ExcelApp.Visible := true;
MyworkBook:=ExcelApp.workBooks.Add;
//在此处插入读数据库及写Excel文档的代码
//其中写Excel文档的关键语句如下:
Myworkbook.worksheets[1].range['A1:D1'].Merge(True);
Myworkbook.worksheets[1].range['A1:D2'].HorizontalAlignment :=
$FFFFEFF4;
MyWorkBook.WorkSheets[1].Cells[1,1].Value := '热带鱼列表---1999年';
i := 2;
MyWorkBook.WorkSheets[1].Cells[i,1].Value := '鱼的名字';
MyWorkBook.WorkSheets[1].Cells[i,2].Value := '大小';
MyWorkBook.WorkSheets[1].Cells[i,3].Value := '重量';
MyWorkBook.WorkSheets[1].Cells[i,4].Value := '产区';
Myworkbook.worksheets[1].Range['A1:D2'].Font.Color := clBlue;
Myworkbook.worksheets[1].Range['A1:D1'].Font.Name := '隶书';
Myworkbook.worksheets[1].Range['A1:D1'].Font.Size := 18;

i := 3;
table1.First;
while not table1.eofdo
begin
MyWorkBook.WorkSheets[1].Cells[i,1].Value :=
table1.FieldByName('name').AsString;
MyWorkBook.WorkSheets[1].Cells[i,2].Value :=
table1.FieldByName('size').AsInteger;
MyWorkBook.WorkSheets[1].Cells[i,3].Value :=
table1.FieldByName('weight').AsInteger;
MyWorkBook.WorkSheets[1].Cells[i,4].Value :=
table1.FieldByName('area').AsString;
Inc(i);
table1.Next
end;
ExcelApp.Visible := true;
s := 'A3:D'+ IntToStr(i-1);
//设定字体. 栏宽等
s := 'A1:D'+ IntToStr(i-1);
Myworkbook.worksheets[1].Columns[1].ColumnWidth := 20;
Myworkbook.worksheets[1].Columns[4].ColumnWidth := 25;
Myworkbook.worksheets[1].Rows[1].RowHeight := 50;
Myworkbook.worksheets[1].Rows[1].VerticalAlignment := $FFFFEFF4;
Myworkbook.worksheets[1].Range.Font.Name := '仿宋';
s := 'A2:D'+ IntToStr(i-1);
Myworkbook.worksheets[1].Range.Borders.LineStyle := 1;
//页面设置
MyworkBook.WorkSheets[1].PageSetup.CenterHorizontally := true;
Myworkbook.worksheets[1].pagesetup.PrintTitleRows := 'A1';

//不能设置 papersize 属性, 原因不明
//MyworkBook.WorkSheets[1].PageSetup.PaperSize := $9;
{
try
MyWorkBook.saveas('c:/' + Edit1.Text + '.xls');
MyWorkBook.close;
except //当存为一个已有的文档而又不覆盖时将
MyWorkBook.close;
//产生一个例外
end;
ExcelApp.Quit;
ExcelApp:=Unassigned;
//释放VARIANT变量
}
end;
 
有很多报表控件都有这个功能的 你用的是什么报表呢?
 
谢谢各位的帮助,我不知那些报表软件有这个功能?我以前用VB+水晶报表时是可以导出到EXCEL的,但我看了QReport,rave,BReport都只有导出到.txt,或..rtf。请问哪些报表有这个功能?
 
用"中国式报表"啊,王寒松.李泽伦写的
 
多人接受答案了。
 
后退
顶部