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
  • 相关阅读:
    STL源代码剖析(二)
    局域网部署docker--从无到有创建自己的docker私有仓库
    Leetcode Add two numbers
    GDIPlus绘制桌面歌词
    Android中apk动态载入技术研究(2)android插件化及实现
    jq 地区(省市县区)联动菜单
    System.Diagnostics.Process.Start的妙用
    aaaa
    RESTful Web 服务:教程
    芒果TV 视频真实的地址获取
  • 原文地址:https://www.cnblogs.com/starluck/p/3842741.html
Copyright © 2011-2022 走看看