合并excel文件 C语言,多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数...

0818b9ca8b590ca3270a3433284dd417.png

unit Unit1;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

interface

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pnguses

0818b9ca8b590ca3270a3433284dd417.png  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

0818b9ca8b590ca3270a3433284dd417.png  Dialogs, StdCtrls, OleServer, ComObj, Clipbrd, Buttons, ShellAPI;

//

务必加入ComObj

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngtype

0818b9ca8b590ca3270a3433284dd417.png  TForm1

=

class

(TForm)

0818b9ca8b590ca3270a3433284dd417.png    btn3: TButton;

0818b9ca8b590ca3270a3433284dd417.png    btn1: TBitBtn;

0818b9ca8b590ca3270a3433284dd417.png    procedure btn3Click(Sender: TObject);

0818b9ca8b590ca3270a3433284dd417.png    procedure btn1Click(Sender: TObject);

0818b9ca8b590ca3270a3433284dd417.png

private

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

...

{ Private declarations }

0818b9ca8b590ca3270a3433284dd417.png

public

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

...

{ Public declarations }

0818b9ca8b590ca3270a3433284dd417.png  end;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

合并两个Excel文件到一个Excel文件

0818b9ca8b590ca3270a3433284dd417.png

function MergerExcel(sFile1Path, sFile2Path:

string

; sModelFile:

string

;

0818b9ca8b590ca3270a3433284dd417.png  sTargetFile:

string

;

out

sErrMsg:

string

): Boolean; overload;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

合并多个Excel文件到一个Excel文件

0818b9ca8b590ca3270a3433284dd417.png

function MergerExcel(sFileList: TStrings; sModelFile:

string

;

0818b9ca8b590ca3270a3433284dd417.png  sTargetFile:

string

;

out

sErrMsg:

string

): Boolean; overload;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngvar

0818b9ca8b590ca3270a3433284dd417.png  Form1: TForm1;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngimplementation

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

...

{$R*.dfm}

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngfunction MergerExcel(sFile1Path, sFile2Path:

string

; sModelFile:

string

; sTargetFile:

string

;

out

0818b9ca8b590ca3270a3433284dd417.png  sErrMsg:

string

): Boolean;

0818b9ca8b590ca3270a3433284dd417.pngvar ExcelApp: Variant;

0818b9ca8b590ca3270a3433284dd417.png  ExcelWorkBook1: OleVariant;

0818b9ca8b590ca3270a3433284dd417.png  ExcelWorkBook2: OleVariant;

0818b9ca8b590ca3270a3433284dd417.png  ExcelWorkBook3: OleVariant;

0818b9ca8b590ca3270a3433284dd417.png  i: Integer;

0818b9ca8b590ca3270a3433284dd417.pngbegin

0818b9ca8b590ca3270a3433284dd417.png  Result:

=

False;

0818b9ca8b590ca3270a3433284dd417.png

try

0818b9ca8b590ca3270a3433284dd417.png    ExcelApp :

=

CreateOleObject(

'

Excel.Application

'

);

0818b9ca8b590ca3270a3433284dd417.png

//

ExcelApp.Visible := True;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook1 :

=

ExcelApp.WorkBooks.Open(sFile1Path);

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook2 :

=

ExcelApp.WorkBooks.Open(sFile2Path);

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook3 :

=

ExcelApp.WorkBooks.Open(sModelFile);

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

骤文件骤Sheet复制到模版文件中

0818b9ca8b590ca3270a3433284dd417.png

for

i :

=

1

to ExcelWorkbook1.Sheets.Count

do

0818b9ca8b590ca3270a3433284dd417.png    begin

0818b9ca8b590ca3270a3433284dd417.png      ExcelWorkBook1.Sheets[i].Copy(Before :

=

ExcelWorkBook3.Sheets[i]);

0818b9ca8b590ca3270a3433284dd417.png    end;

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook1.Close;

0818b9ca8b590ca3270a3433284dd417.png

for

i :

=

1

to ExcelWorkbook2.Sheets.Count

do

0818b9ca8b590ca3270a3433284dd417.png    begin

0818b9ca8b590ca3270a3433284dd417.png      ExcelWorkBook2.Sheets[i].Copy(Before :

=

ExcelWorkBook3.Sheets[i]);

0818b9ca8b590ca3270a3433284dd417.png    end;

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook2.Close;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

删除可能已经存在的目标文件

0818b9ca8b590ca3270a3433284dd417.png

if

FileExists(sTargetFile) then

0818b9ca8b590ca3270a3433284dd417.png      DeleteFile(sTargetFile);

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

将生成的Model文件另存为

0818b9ca8b590ca3270a3433284dd417.png

ExcelWorkBook3.SaveAs(sTargetFile);

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBook3.Close;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png    ExcelApp.Quit;

0818b9ca8b590ca3270a3433284dd417.png    Result:

=

True;

0818b9ca8b590ca3270a3433284dd417.png  except

0818b9ca8b590ca3270a3433284dd417.png    on E: Exception

do

0818b9ca8b590ca3270a3433284dd417.png    begin

0818b9ca8b590ca3270a3433284dd417.png      sErrMsg :

=

E.Message;

0818b9ca8b590ca3270a3433284dd417.png      Result:

=

False;

0818b9ca8b590ca3270a3433284dd417.png    end;

0818b9ca8b590ca3270a3433284dd417.png  end;

0818b9ca8b590ca3270a3433284dd417.pngend;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

合并多个Excel文件到一个Excel文件

0818b9ca8b590ca3270a3433284dd417.png

function MergerExcel(sFileList: TStrings; sModelFile:

string

;

0818b9ca8b590ca3270a3433284dd417.png  sTargetFile:

string

;

out

sErrMsg:

string

): Boolean;

0818b9ca8b590ca3270a3433284dd417.pngvar ExcelApp: Variant;

0818b9ca8b590ca3270a3433284dd417.png  ExcelWorkBookS: OleVariant;

0818b9ca8b590ca3270a3433284dd417.png  ExcelWorkBookD: OleVariant;

0818b9ca8b590ca3270a3433284dd417.png  i,iFileOrder: Integer;

0818b9ca8b590ca3270a3433284dd417.pngbegin

0818b9ca8b590ca3270a3433284dd417.png  Result:

=

False;

0818b9ca8b590ca3270a3433284dd417.png

try

0818b9ca8b590ca3270a3433284dd417.png    ExcelApp :

=

CreateOleObject(

'

Excel.Application

'

);

0818b9ca8b590ca3270a3433284dd417.png

//

ExcelApp.Visible := True;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBookD :

=

ExcelApp.WorkBooks.Open(sModelFile);

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

for

iFileOrder :

=

0

to sFileList.Count

-

1

do

0818b9ca8b590ca3270a3433284dd417.png    begin

0818b9ca8b590ca3270a3433284dd417.png      ExcelWorkBookS :

=

ExcelApp.WorkBooks.Open(sFileList.Strings[iFileOrder]);

0818b9ca8b590ca3270a3433284dd417.png

//

骤文件骤Sheet复制到模版文件中

0818b9ca8b590ca3270a3433284dd417.png

for

i :

=

1

to ExcelWorkbookS.Sheets.Count

do

0818b9ca8b590ca3270a3433284dd417.png      begin

0818b9ca8b590ca3270a3433284dd417.png        ExcelWorkBookS.Sheets[i].Copy(Before :

=

ExcelWorkBookD.Sheets[i]);

0818b9ca8b590ca3270a3433284dd417.png      end;

0818b9ca8b590ca3270a3433284dd417.png      ExcelWorkBookS.Close;

0818b9ca8b590ca3270a3433284dd417.png    end;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

删除可能已经存在的目标文件

0818b9ca8b590ca3270a3433284dd417.png

if

FileExists(sTargetFile) then

0818b9ca8b590ca3270a3433284dd417.png      DeleteFile(sTargetFile);

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

//

将生成的Model文件另存为

0818b9ca8b590ca3270a3433284dd417.png

ExcelWorkBookD.SaveAs(sTargetFile);

0818b9ca8b590ca3270a3433284dd417.png    ExcelWorkBookD.Close;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png    ExcelApp.Quit;

0818b9ca8b590ca3270a3433284dd417.png    Result:

=

True;

0818b9ca8b590ca3270a3433284dd417.png  except

0818b9ca8b590ca3270a3433284dd417.png    on E: Exception

do

0818b9ca8b590ca3270a3433284dd417.png    begin

0818b9ca8b590ca3270a3433284dd417.png      sErrMsg :

=

E.Message;

0818b9ca8b590ca3270a3433284dd417.png      Result:

=

False;

0818b9ca8b590ca3270a3433284dd417.png    end;

0818b9ca8b590ca3270a3433284dd417.png  end;

0818b9ca8b590ca3270a3433284dd417.pngend;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngprocedure TForm1.btn3Click(Sender: TObject);

0818b9ca8b590ca3270a3433284dd417.pngvar sXlsFileName1, sXlsFileName2, sXlsFileName3, sTargetFile, s:

string

;

0818b9ca8b590ca3270a3433284dd417.pngh:THandle;

0818b9ca8b590ca3270a3433284dd417.pngbegin

0818b9ca8b590ca3270a3433284dd417.png  sXlsFileName1 :

=

ExtractFilePath(Application.ExeName)

+

'

1.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png  sXlsFileName2 :

=

ExtractFilePath(Application.ExeName)

+

'

2.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png  sXlsFileName3 :

=

ExtractFilePath(Application.ExeName)

+

'

3.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png  sTargetFile :

=

ExtractFilePath(Application.ExeName)

+

'

4.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png  MergerExcel(sXlsFileName1, sXlsFileName2, sXlsFileName3, sTargetFile, s);

0818b9ca8b590ca3270a3433284dd417.png  ShellExecute(Handle,

'

open

'

, pchar(sTargetFile), nil, nil, SW_SHOWNORMAL);

0818b9ca8b590ca3270a3433284dd417.pngend;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngprocedure TForm1.btn1Click(Sender: TObject);

0818b9ca8b590ca3270a3433284dd417.pngvar sl:TStrings;

0818b9ca8b590ca3270a3433284dd417.png  sModel,sTargetFile, s:

string

;

0818b9ca8b590ca3270a3433284dd417.pngbegin

0818b9ca8b590ca3270a3433284dd417.png  sl:

=

TStringList.Create;

0818b9ca8b590ca3270a3433284dd417.png  sl.Add(ExtractFilePath(Application.ExeName)

+

'

1.xls

'

);

0818b9ca8b590ca3270a3433284dd417.png  sl.Add(ExtractFilePath(Application.ExeName)

+

'

2.xls

'

);

0818b9ca8b590ca3270a3433284dd417.png  sl.Add(ExtractFilePath(Application.ExeName)

+

'

包装方案1.xls

'

);

0818b9ca8b590ca3270a3433284dd417.png  sl.Add(ExtractFilePath(Application.ExeName)

+

'

包装方案2.xls

'

);

0818b9ca8b590ca3270a3433284dd417.png  sl.Add(ExtractFilePath(Application.ExeName)

+

'

包装方案3.xls

'

);

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png  sModel:

=

ExtractFilePath(Application.ExeName)

+

'

3.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png  sTargetFile:

=

ExtractFilePath(Application.ExeName)

+

'

4.xls

'

;

0818b9ca8b590ca3270a3433284dd417.png  MergerExcel(sl,sModel, sTargetFile, s);

0818b9ca8b590ca3270a3433284dd417.pngend;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngend.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值