在DELPHI中如何实现如题的功能,并且给出参考代码。
感激~~~~~
感激~~~~~
解决方案 »
- 额的神呀,这个代段在XE2的FireMonkey中怎么会无效了?
- 关于主表明细表更新修改的问题,大家是 如何操作的
- 帮帮忙!!
- 怎样动态的打开Table1------------在线等待!!!!!
- DrawGrid,StringGrid的使用例子谁有,找到就给分。
- ? 我用VC ATL 编写的控件,在VB里面以及ActiveX测试工具里面可以运行,还有Delphi集成环境里面可以显示,但是在Delphi编译后的程序中不
- 交友:if
- 关于"对象指针"。请大虾进?
- 怎样才能得到当前的小时和分钟?
- 在D5上安装rx2.75控件的问题!60分!!
- 請問各位大俠,CORBA的問題!(重謝)
- 有谁正在使用显示器“防辐射屏”???真的有用?google上搜了一下,好象“金吉”牌子不错,真的吗???
在学学VBA(就是office里的宏代码),然后把VBA以delphi的格式写,就差不多了,具体比较麻烦,可以完成office组件的全部功能
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,comobj, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
CheckBox1: TCheckBox;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
v: Variant;
Sheet: Variant;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
try
v:=CreateOleObject('Excel.Application');
v.Visible:=CheckBox1.Checked;
if MessageDlg('新建还是打开:是否新建Excel 文件?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
v.WorkBooks.Add; //新建Excel 文件
v.WorkBooks[1].WorkSheets[1].name:='电脑报';//第一页标题
v.WorkBooks[1].WorkSheets[2].name:='编程乐园';
v.WorkBooks[1].WorkSheets[3].name:='都来看呀';
Sheet:=v.WorkBooks[1].WorkSheets[1];
Sheet.Cells[1,1]:='好看';//单元格内容
Sheet.Cells[1,2]:='确实';
Sheet.Cells[2,1]:='我喜欢';
end
else
if OpenDialog1.Execute then
v.WorkBooks.Open(Opendialog1.FileName)
else
exit;
except
showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。');
v.DisplayAlerts:=false;//是否提示存盘
v.Quit;//退出Excel
exit;
end;
Application.Restore;
Application.BringToFront;
end;//~~~~~~~~~~~~~~~~~~~~~~~~~Excel 文档格式设置~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.Button2Click(Sender: TObject);
var
Range:Variant;
begin
if OpenDialog1.Execute then
begin
try
v:=CreateOleObject('Excel.Application');
v.visible:=CheckBox1.Checked;
v.Workbooks.Open(OpenDialog1.FileName);
Range:=v.WorkBooks[1].WorkSheets[1].Range['A2:G2'];//the space of unit From A2 to G2
Range.Merge;//combine the unit spaces
Range.Rows.RowHeight:=50;//locate the height of the row of the unit space
Range.Borders.LineStyle:=1;//add the border casement
Range.Columns[2].ColumnWidth:=12;//locate the width of the columns
Range.FormulaR1C1:='合并区';
Range.HorizontalAlignment:=3;//xlCenter(the Horizontall alignment pattern
Range.VerticalAlignment:=2;//xlCenter(the Vertical alignment pattern
Range.Characters.Font.Name:='宋体';
Range.Characters.Font.FontStyle:='加粗';
Range.Characters.Font.Size:=15;
Range.Characters.Font.OutlineFont:=False;
Range.Characters.Font.ColorIndex:=0;
except
showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。');
v.DisplayAlerts:=false;
v.Quit;
exit;
end;
end;
end;//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~关闭Excel 并退出~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.Button4Click(Sender: TObject);
begin
try
if not varIsEmpty(v) then
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
if MessageDlg(Format('OK to OverWrite %s',[SaveDialog1.FileName]),mtconfirmation,mbYesNoCancel,0)<>idYes then
exit;
v.WorkBooks[1].saveas(SaveDialog1.FileName);
end
else
begin
if OpenDialog1.FileName<>'' then
begin
v.WorkBooks[1].saved:=true;
v.WorkBooks[1].Close(true,'C:\untitled.xls');
end;
end;
v.quit;
v:=Unassigned;
end;
finally
Close;
end;
end;//~~~~~~~~~~~~~~~~~~~退出系统~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.Button5Click(Sender: TObject);
begin
v.WorkBooks[1].Close(true,'C:\untitled.xls');//exit and hand out the name of file
//v.disPlayAlert:=true;
v.quit;
v:=Unassigned;
close;
end;//~~~~~~~~~~~~~~~~~~~~Excel 打印页面设置及打印预览~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
try
v:=CreateOleObject('Excel.Application');
v.Visible:=CheckBox1.Checked;
v.WorkBooks.Open(OpenDialog1.FileName);
sheet:=v.WorkBooks[1].WorkSheets[1];
sheet.PageSetup.PrintTitleRows:='$1:$3';//the head of page
sheet.PageSetup.PrintTitleColumns:='';
Sheet.PageSetup.LeftFooter:='注:页脚'+'总共&N页'+'——第&P页';//the footer of page
Sheet.PageSetup.LeftMargin:=30;//locate the instance of the border
Sheet.PageSetup.RightMargin:=30;
Sheet.PageSetup.TopMargin:=30;
Sheet.PageSetup.BottomMargin:=50;
//Sheet.PageSetup.PrintQuality:=400; //分辨率(根据打印机确定)
Sheet.PageSetup.CenterHorizontally:=true;//if the center and horizon
Sheet.PageSetup.CenterVertically:=true;//if the center and verticality
Sheet.PageSetup.Orientation:=2;//the sideling print
Sheet.PageSetup.Draft:=False;//if draft
Sheet.PageSetup.FirstPageNumber:=1;
Sheet.pageSetup.BlackAndWhite:=true;//the draft of black and white
Sheet.PageSetup.Zoom:=100;//shorten or extend
Sheet.PrintPreview;//preview
except
showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。');
v.DisplayAlerts:=false;
v.Quit;
exit;
end;
end;
end;end.
function DSetToExcel(const DSet: TDataSet; ExcelFile: String): OLEVARIANT;
var
ExcelApp,
WorkBook: OLEVARIANT; i: Integer;
Row: Integer;
begin
Screen.Cursor := crHourGlass; try
ExcelApp := CreateOleObject('Excel.Application');
WorkBook := CreateOleObject('Excel.Sheet');
except
Screen.Cursor := crDefault;
ShowMessage(' 信息:您尚未安装EXCEL或不可用! ');
Exit;
end;
WorkBook := ExcelApp.WorkBooks.Add; Row := 2;
for i := 1 to DSet.FieldCount do
begin
ExcelApp.Cells(Row,i) := DSet.Fields[i - 1].DisplayLabel
end;
Row := 3;
while (DSet.Active) and (not DSet.Eof) do
begin
for i := 1 to DSet.FieldCount do
begin
ExcelApp.Cells(Row,i) := DSet.Fields[i - 1].AsString;
end;
Inc(Row);
DSet.Next;
end;
WorkBook.SaveAs(ExcelFile);
WorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned; Screen.Cursor := crDefault;
end;
begin
DSetToExcel(tblICK,'C:\DEMO.XLS');
end;