内存表clientDataSet

unit uRpClientDs;

interface

uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs, StdCtrls, cxControls, cxSSheet, ComCtrls, cxSSTypes, cxSSStyles, 
DB, ADODB, DBClient, Grids, DBGrids;

function GetRpDataSet(lRpName: string; lIniRow: Integer): TDataSet;

implementation

function GetRpDataSet(lRpName: string; lIniRow: Integer): TDataSet; 
var 
lcell01: TcxSSCellObject; 
I, J, lWide: Integer; 
cxSheetBook: TcxSpreadSheetBook; 
lClientDs: TClientDataSet; 
begin 
if not FileExists(lRpName) then Exit; 
cxSheetBook := TcxSpreadSheetBook.Create(nil); 
lClientDs := TClientDataSet.Create(nil); 
try 
    cxSheetBook.LoadFromFile(lRpName); 
    try 
      for I := 0 to cxSheetBook.Pages[0].ColumnCount - 1 do // Iterate 
      begin 
        lWide := cxSheetBook.Pages[0].Cols.Size[I]; 
        if lWide <> 0 then 
          lClientDs.FieldDefs.Add('FIELD' + IntToStr(I + 1), ftString, lWide); 
      end; // for 
      lClientDs.CreateDataSet; 
      lClientDs.Open;

      for I := lIniRow - 1 to cxSheetBook.Pages[0].RowCount - 1 do // Iterate 
      begin 
        lClientDs.Append; 
        for J := 0 to cxSheetBook.Pages[0].ColumnCount - 1 do // Iterate 
        begin 
          lcell01 := cxSheetBook.Pages[0].GetCellObject(J, I);

          lClientDs.Fields[J].AsString := lcell01.Text; 
        //lcell02.Text := lcell01.Text;

        end; // for 
        lClientDs.Post; 
      end; // for 

      Result := lClientDs; 
    except 
      Result := nil; 
    end; 
finally 
    cxSheetBook.Free; 
end; 
end;

end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值