excel问题(100分)

Y

yhncom

Unregistered / Unconfirmed
GUEST, unregistred user!
________________________________
| | | |
| | 货号 | |
| 客户货号 |_________| 备注 |
| | | |
| | 消息 | |
|__________|_________|__________|
| | | |
| | 货号1 | |
| 客户货号1|_________| 备注1 |
| | | |
| | 消息1 | |
|__________|_________|__________|
上面的格式是输出到excel中的格式,用delphi来如何实现?
 
写死还是写活的?
写死的话很容易,要是写活的,就难了。
procedure RepCreat;
{创建Excel对象}
begin
try
ExlApp:=CreateOLEObject('Excel.Application');
//创建Excel工程;
ExlBook:=CreateOLEObject('Excel.Sheet');
//创建工作表;
ExlApp.Visible :=False;// True;
//设置Excel显示属性;
except
MessageDlg('您的机器里未安装Microsoft Excel!', mtError, [mbOk], 0);
Exit;
end;
{try}
end;
{RepCreat}
procedure CellMerge(x1,y1,x2,y2:integer);
//合并指定单元格;Var
RepSpace:String;
begin
RepSpace:=GetRepRange(x1,y1)+':'+GetRepRange(x2,y2);
ExlApp.Range[RepSpace].Select;
ExlApp.Selection.Merge;
end;
{CellMerge}
//把Cell格式的单元格格式转化为Range格式的单元格格式;
Function TForm1.GetRange(x,y:integer):String;
var fX:string;
begin
if y<=0 then
fX:='A';
if y<=26 then
fX := chr(64+y);
if y>26 then
fX:=chr(64+(y div 26))+chr(64+(y mod 26));
Fx:=Fx+IntToStr(x);
Result:=fX;
end
自己研究一下吧:)
 
excel控件的cells属性去看看
 
有没有做成活的excel表格的人呀?
大家都说麻烦~
 
用Excel做报表很麻烦,
我上次做了几张,烦死了,
只能做一些特殊的还可以,
很不灵活!
 
如何活法!難做啊 !你可以做一個Format.xls(和你的執行檔在同一路徑)樣板,格式就是你需要的Excel格式!然后你可以如下:
ExlApp:=CreateOLEObject('Excel.Application');
//创建Excel工程;
ExlBook:=CreateOLEObject('Excel.Sheet');
//创建工作表;
ExlApp.Visible :=False;// True;
ExlBook:= ExcelApp.workBooks.Open(ChangeFileExt(Application.ExeName,'/Format.xlt'));
因為你的Format.xls格式是固定的,然后你可以對ExlBook賦值!
如下:
ExlBook.worksheets[1].Cells[2,3].Value:='??';
ExlBook.worksheets[1].Cells[3,3].Value:='???';
....
ExlBook.worksheets[1].Cells[9,3].Value:='???' ;
ExcelApp.Visible := true;
大概思路是這樣的,自己研究講究吧!
 
对楼上的再补充一下,其实你可以预先做一个Excel文件,里面你自己自定义些变量,每次输出报表的时候,编程序自动去替换你的变量就可以了.这个你就不必要在确定非要定死在那一格了
 
最好做好模板,随时调用
 
顶部