TXLSReadWriteII2 按行读取数据(写得复杂了点,实际项目中的,可以自己简化)

procedure TformMain.LoadGeneralObject(_type, _col, _row: Integer; _filename: AnsiString);

var

  xls: TXLSReadWriteII2;

  i: integer;

  dataRec: TDataRec;

  reportedRec: TReportedRec;

  RegistrationNO: AnsiString;

  StartstopTime: AnsiString;

  LastTime: AnsiString;

  Ownedcompanies: AnsiString;

  SimNO: AnsiString;

  TerminalIDHex: AnsiString;

  TerminalIDStr: AnsiString;

begin

  RzProgressBar1.Percent := 0;

  i := 0;

  xls := TXLSReadWriteII2.Create(Self);

  try

    Xls.Filename := _filename;

    Xls.Read;  //必须的

    Xls.Sheet[0].LastCol := _col;

    Xls.Sheet[0].LastRow := _row;

    case _type of

      1: i := 1;

      2: i := 2;

    end;

    while i <= Xls.Sheet[0].LastRow do

    begin

      case _type of

        1:

          begin

            reportedRec.ID := StrToIntDef(XLS.Sheets[0].AsFmtString[0, i], 0);

            Ownedcompanies := XLS.Sheets[0].AsFmtString[1, i];

            reportedRec.Ownedcompanies := FilterChar(Ownedcompanies);

            RegistrationNO := XLS.Sheets[0].AsFmtString[2, i];

            reportedRec.RegistrationNO := Q_StrTok1(RegistrationNO, '-');

            reportedRec.Industry := FilterChar(XLS.Sheets[0].AsFmtString[3, i]);

            reportedRec.Dealer := FilterChar(XLS.Sheets[0].AsFmtString[4, i]);

            reportedRec.SimNO := FilterChar(XLS.Sheets[0].AsFmtString[6, i]);

            reportedRec.TerminalFactory := FilterChar(XLS.Sheets[0].AsFmtString[7, i]);

            TerminalIDHex := FilterChar(XLS.Sheets[0].AsFmtString[8, i]);

            TerminalIDStr := Trim(Q_StrTok1(TerminalIDHex, '/'));

            reportedRec.TerminalIDInt := StrToInt64Def(TerminalIDStr, 0);

            TerminalIDHex := Trim(TerminalIDHex);

            Q_Delete(TerminalIDHex, 1, 2);

            reportedRec.TerminalIDHex := TerminalIDHex;

            reportedRec.Reported := XLS.Sheets[0].AsFmtString[9, i] = '已上报';

            reportedRec.isReported := True;

            AddReportInfo(reportedRec);

            inc(i, 2);

          end;

        2:

          begin

            dataRec.ID := StrToIntDef(XLS.Sheets[0].AsFmtString[0, i], 0);

            dataRec.VendorID := StrToIntDef(XLS.Sheets[0].AsFmtString[1, i], 0);

            dataRec.TerminalIDHex := XLS.Sheets[0].AsFmtString[2, i];

            TerminalIDStr := XLS.Sheets[0].AsFmtString[3, i];

            dataRec.TerminalIDInt := StrToIntDef(TerminalIDStr, 0);

            dataRec.TerminalKind := IfThen(Q_CopyLeft(TerminalIDStr, 1) = '4', 600, 700);

            dataRec.CenterID := StrToIntDef(XLS.Sheets[0].AsFmtString[4, i], 0);

            dataRec.CommType := XLS.Sheets[0].AsFmtString[5, i];

            Ownedcompanies := XLS.Sheets[0].AsFmtString[6, i];

            dataRec.Ownedcompanies := FilterChar(Ownedcompanies);

            RegistrationNO := XLS.Sheets[0].AsFmtString[7, i];

            if Trim(RegistrationNO) = '' then

              dataRec.RegistrationNO := ''

            else

              dataRec.RegistrationNO := Q_StrTok1(RegistrationNO, '-');

            SimNO := XLS.Sheets[0].AsFmtString[8, i];

            dataRec.SimNO := FilterChar(SimNO);

            dataRec.Reported := XLS.Sheets[0].AsFmtString[13, i] = '√';

            dataRec.BackInfo := XLS.Sheets[0].AsFmtString[14, i] = '√';

            StartstopTime := XLS.Sheets[0].AsFmtString[15, i];

            if StartstopTime = '' then

            begin

              dataRec.StartstopTime := '';

              dataRec.LastTime := 0;

            end

            else

            begin

              StartstopTime := FilterChar(StartstopTime);

              dataRec.StartstopTime := StartstopTime;

              Q_StrTok1(StartstopTime, '~');

              LastTime := FormatDateTime('yyyy-', Now) + StartstopTime;

              dataRec.LastTime := StrToDateTime(LastTime);

            end;

            dataRec.RealTime := 0;

            AddCarGeneralInfo(dataRec);

            inc(i);

          end;

      end;

      doOnProgressBar(100 * i div Xls.Sheet[0].LastRow);

    end;

  finally

    xls.Free;

  end;

end;

  

TXLSReadWriteII2 读取数据的更多相关文章

  1. struts2中从后台读取数据到<s:select>

    看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...

  2. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  3. ubuntu server 12.04U盘安装,提示无法挂载安装光盘或光盘读取数据出错

    今天用Ultraiso将Ubuntu server 12.04 刻入U盘中安装系统,中间提示错误:1.检测不到cdrom(即U盘没有挂载上):2.从光盘中读取数据出错.问题如下图所示: 上网搜了下解决 ...

  4. MySQL数据库中tinyint类型字段读取数据为true和false

    今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...

  5. My Game --文件读取数据

    My Game --线段数据 中说到背景的绘制由贝赛尔曲线生成线段,用 DrawNode 画多边形,同时一张背景有两座山,一座山有两条以上贝赛尔曲线保存,用了嵌套的数据类:Bezier,LineLay ...

  6. Java—从文件中读取数据

    1.FileInputStream() // 构建字节输入流对象,参数为文件名 FileInputStream fin = new FileInputStream("message" ...

  7. 10天学会phpWeChat——第三天:从数据库读取数据到视图

    在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...

  8. 用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据

    现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线. 每种GPIB控制器都有它的 函数库(dll库).各种GPIB 控制器的价钱插别很大.这里以一种价钱较便宜的USB-GPIB ...

  9. winform 异步读取数据 小实例

    这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...

随机推荐

  1. Oracle 导出的表不全,以及数据库版本不同导入报错

    公司有两个环境下的数据库,版本不同,一个是11g r2,另一个是10g r2 首先在11g r2下用exp导出数据库备份文件,发现部分表缺失. 原来这部分表是空的,11G中新特性,当表无数据时,不分配 ...

  2. ipv4-only网络环境下访问ipv6站点

    使用6plat.org+openVPN(无需资金投入)进入ipv6网络 这里我们主要使用的是6plat.org提供的“46模块——IPv4到IPv6”功能,需要配合openVPN这个软件,支持wind ...

  3. Dubbo透传traceId/logid的一种思路

    前言: 随着dubbo的开源, 以及成为apache顶级项目. dubbo越来越受到国内java developer欢迎, 甚至成为服务化自治的首选方案. 随着微服务的流行, 如何跟踪整个调用链, 成 ...

  4. Python 学习之路的前言

    做为一个编程小白,除了大三的时候考了VB的二级之后,就在也没有接触过其它有关计算机之类的知识.考入材料的研究生之后,越来越觉得自己不想继续这个行业,选择计算机作为自己以后要走的路,所下的决心所用的时间 ...

  5. spring jpa Pageable 分页之---多条件排序

    Sort sort = new Sort(Direction.ASC, "sort").and(new Sort(Direction.DESC, groupField));//排序 ...

  6. Parsing Natural Scenes and Natural Language with Recursive Neural Networks-paper

    Parsing Natural Scenes and Natural Language with Recursive Neural Networks作者信息: Richard Socher richa ...

  7. C语言中->是什么意思啊?比如说 p=p->next 到底表达了什么意思,请说清楚点,还有->这个符号是一个整体吗,什么意思??

    ->是一个整体,它是用于指向结构体.C++中的class等含有子数据的指针用来取子数据.换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中 ...

  8. JavaScript中DOM(第二天)

    DOM document object model,文档对象模型,也叫dom树:dom是由节点组成的.html标签称为标签节点,属性称为属性节点: console.log(docment);即可输出d ...

  9. html走马灯效果

    实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...

  10. Spring各个jar包作用

    Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现Spring Aspects:Spring提供的对AspectJ框架的整合Spring Beans:Spring IO ...