NativeExcel 读取文件

class function T_EShopDataBill.ImportData(const AFileName: String;
  AList: T_EShopDataModelList; var AErr: string): Boolean;
var
    Book: IXLSWorkbook;
    ws: IXLSWorksheet;
    i : Integer;
    nOrderIDRow,nTrackNoRow : Integer;
    obj : T_EShopDataModel;
    tmpIden,tmpTrackNo : String;
    sSql : String;
    tmpQry : TADOQuery;
begin
   Book := TXLSWorkbook.Create ;
   try
     i := Book.Open(AFileName);
     ws := Book.WorkSheets[1];

     if ws.UsedRange.Rows.Count = 0 then
       Exit;

     nOrderIDRow := 0;
     nTrackNoRow := 0;
     for I := 1 to ws.UsedRange.Rows[1].Count -1 do
     begin
        if nOrderIDRow = 0 then
            if CompareText( VarToStr( ws.UsedRange.Cells[1,i].Value),'单据备注') = 0 then
              nOrderIDRow := i;

        if nTrackNoRow = 0 then
           if CompareText( VarToStr( ws.UsedRange.Cells[1,i].Value),'运单编号') = 0 then
              nTrackNoRow := i;

        if (nOrderIDRow > 0 ) AND (nTrackNoRow > 0) then
          Break;
     end;

      // ShowInformationMsg(inttostr(nOrderIDRow)+' '+IntTostr(nTrackNoRow));
     if (nOrderIDRow = 0) or (nTrackNoRow = 0) then
       Exit;


     for i := 2 to  ws.UsedRange.Rows.Count  do
     begin
        with ws.UsedRange do
        begin
          if VarIsNull(Cells[i,nTrackNoRow].Value) then
            Break;
          if VarIsNull(Cells[i,nOrderIDRow].Value) then
            Break;
        end;

        tmpTrackNo := ws.UsedRange.Cells[i,nTrackNoRow].Value;
        tmpIden := ws.UsedRange.Cells[i,nOrderIDRow].Value;

        if ( Trim(tmpTrackNo) = '') or (tmpIden = '') then
        begin
          Break;
        end;

        obj := T_EShopDataModel.Create;
        obj.fOrderID := tmpIden;
        obj.fTrackNo := tmpTrackNo;
        AList.List.Add(obj);
     end;
   finally
     Book.Close;
   end;
end

 

转载于:https://www.cnblogs.com/starluck/p/3842741.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值