转Delphi中XLSReadWrite控件的使用,3 读和写Excel

unit OpExcell;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, XLSReadWriteII2, QFileCtrls, OleCtrls, DB, ADODB, CellFormats2,

XLSFonts2, BIFFRecsII2, Rows2;

type

TStringArray = array of array of string;

TOpExcell = class(TObject)

public

function ReadXLSII(var Content: TStringArray; fileName: string): BOOL; //读excel表格

function WriteXLSII(var Content: TStringArray; fileName: string): BOOL; //写excel表格

end;

implementation

function TOpExcell.ReadXLSII(var Content: TStringArray; fileName: string): BOOL;

var

iR, iC, i, j: Integer;

XLS: TXLSReadWriteII2;

begin

Result := True;

XLS := TXLSReadWriteII2.Create(nil);

XLS.fileName := fileName;

XLS.Read;

//得到行列

iR := XLS.Sheets[0].LastRow;

iC := XLS.Sheets[0].LastCol;

try

SetLength(Content, iR + 1, iC + 1);

for i := 0 to iR do

begin

for j := 0 to iC do

begin

Content[i, j] := XLS.Sheets[0].AsString[j, i];

end;

end;

except

Result := False;

end;

if Assigned(XLS) then

begin

XLS.Destroy;

end;

end;

function TOpExcell.WriteXLSII(var Content: TStringArray; fileName: string): BOOL;

var

iR, iC, i, j: Integer;

XLS: TXLSReadWriteII2;

begin

XLS := TXLSReadWriteII2.Create(nil);

XLS.fileName := fileName;

try

try

iR := Length(Content);

iC := Length(Content[0]);

for i := 0 to iR - 1 do

begin

for j := 0 to iC - 1 do

begin

XLS.Sheets[0].AsString[j, i] := Content[i, j];

end;

end;

XLS.Write;

Result := True;

except

Result := False;

end;

finally

XLS.Destroy;

end

end;

end.