• 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
  • 相关阅读:
    Atcoder Beginner Contest075 翻车记
    bzoj1972 猪国杀 大♂模拟
    10月9-11日连续大翻车实录
    10月8日翻车实录
    10月7日考试翻车实录
    四月は君の嘘?人生は君の嘘?
    NOIP模拟 gcd 数学
    NOIP模拟 water 最小生成树
    NOIP模拟 mine DP
    bzoj2064 分裂 状压DP
  • 原文地址:https://www.cnblogs.com/starluck/p/3842741.html
Copyright © 2020-2023  润新知