zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    设计模式-抽象工厂模式
    设计模式-工厂方法模式
    设计模式-简单工厂模式
    设计模式-代理模式
    Retrofit原理学习
    Google Flutter的学习与使用
    Robolectric结合Android Studio的使用
    Android中app的启动步骤
    汽车系统实现--增加数据和删除数据
    vue--实现跑马灯效果
  • 原文地址:https://www.cnblogs.com/starluck/p/3842741.html
Copyright © 2011-2022 走看看