• 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
  • 相关阅读:
    探偵ガリレオー転写る 完了
    探偵ガリレオー転写る3
    探偵ガリレオー転写る2
    探偵ガリレオー転写る1
    探偵ガリレオ 燃えるまで
    探偵ガリレオ2
    探偵ガリレオ1
    【转】2014找工作----扎实的基础和开阔的视野是企业最看重的因素
    三种交换两个整数的方法
    计算十进制整数的二进制中的1的数目
  • 原文地址:https://www.cnblogs.com/starluck/p/3842741.html
Copyright © 2020-2023  润新知