Blog信息 |
blog名称:注册会计师(注会)练习软件 日志总数:398 评论数量:116 留言数量:27 访问次数:3270057 建立时间:2005年6月6日 |

| |
[delpih编程]自已编写的一段合并多个EXCEL文件到一个新EXCEL文件的程序 软件技术
吕向阳 发表于 2010/5/22 16:36:14 |
unit excel01;interfaceusesWindows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs, StdCtrls, ComObj; {ComObj是操作OLE对象的函数集}typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;OpenDialog1: TOpenDialog;SaveDialog1: TSaveDialog;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure FormCreate(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;eclApp, WorkBook, worksheet: Variant;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);vareclApp, WorkBook: Variant; { 声明为OLE Automation 对象 }xlsFileName: string;beginxlsFileName := 'd:\ex.xls';try{创建OLE对象:Excel Application与 WorkBook}eclApp := CreateOleObject('Excel.Application');WorkBook := CreateOleobject('Excel.Sheet');exceptShowMessage('您的机器里未安装Microsoft Excel.');Exit;end;tryShowMessage('下面演示: 新建一个XLS文件, 并写入数据, 最后关闭它');workBook := eclApp.workBooks.Add;eclApp.Cells(1, 1) := '字符型';eclApp.Cells(2, 1) := 'Excel文件';eclApp.Cells(1, 2) := 'Money型';eclApp.Cells(2, 2) := 10.01;eclApp.Cells(1, 3) := '日期型';eclApp.Cells(2, 3) := Date;WorkBook.saveas(xlsFileName);WorkBook.close;ShowMessage('下面演示: 打开刚创建的XLS文件, 并修改其中的内容, 然后, 由用户决 定是否保存。');WorkBook := eclApp.workBooks.Open(xlsFileName);eclApp.Cells(2, 1) := 'Excel文件类型';if MessageDlg(xlsFileName + '文件已被修改, 是否保存?', mtConfirmation, [mbYes, mbNo], 0) =mrYes thenWorkBook.saveelseworkBook.Saved := True; {放弃修改}WorkBook.Close;eclApp.Quit; //退出Excel Application{释放VARIANT变量}exceptShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开, 或系统 错误');WorkBook.close;eclApp.Quit;{释放VARIANT变量}end;end;procedure TForm1.Button2Click(Sender: TObject);varsourceeclApp, sourceWorkBook, sourceworksheet: Variant; { 声明为OLE Automation 对象 }sourcefile, xlsFileName: string;i, j, allrec: integer;begin// 打开源文件tryopendialog1.Execute;if trim(opendialog1.FileName) = '' thenbeginshowmessage('没有选定源文件,退出!');exit;end;exceptend;trysavedialog1.Execute;if trim(savedialog1.FileName) = '' thenbeginshowmessage('没有选定目标文件,退出!');exit;end;exceptend;//建立目标文件allrec := 1;try{创建OLE对象:Excel Application与 WorkBook}sourceeclApp := CreateOleObject('Excel.Application');sourceWorkBook := CreateOleobject('Excel.Sheet');exceptShowMessage('您的机器里未安装Microsoft Excel.');Exit;end;tryworkBook := eclApp.workBooks.Add;for j := 0 to opendialog1.Files.Count - 1 dobegintrysourceworkbook := eclApp.workBooks.Open(opendialog1.Files[j]);exceptexit;end;for i := 1 to eclapp.worksheets.count dobeginsourceworksheet := eclApp.worksheets[i];sourceworksheet.select;if sourceworkbook.activesheet.usedrange.rows.count > 1 thenbeginsourceworkbook.activesheet.usedrange.copy(WorkBook.activesheet.range['a' +trim(inttostr(allrec))]);allrec := allrec + sourceworkbook.activesheet.usedrange.rows.count + 1;WorkBook.activesheet.range['a' + trim(inttostr(allrec - 1))].Interior.ColorIndex :=3;end;end;sourceworkbook.close;end;eclapp.activesheet.usedrange.unmerge;WorkBook.saveas(savedialog1.FileName);eclapp.Visible := True;sourceeclApp.Quit; //退出Excel Application{释放VARIANT变量}exceptShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开, 或系统错误');WorkBook.close;{释放VARIANT变量}end;end;procedure TForm1.FormCreate(Sender: TObject);begintry{创建OLE对象:Excel Application与 WorkBook}eclApp := CreateOleObject('Excel.Application');WorkBook := CreateOleobject('Excel.Sheet');exceptShowMessage('您的机器里未安装Microsoft Excel.');Exit;end;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begintryWorkBook.close;eclApp.Quit;exceptend;end;end. |
|
|