TXLSReadWriteII2 读取数据
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 读取数据的更多相关文章
- struts2中从后台读取数据到<s:select>
看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...
- [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据
继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...
- ubuntu server 12.04U盘安装,提示无法挂载安装光盘或光盘读取数据出错
今天用Ultraiso将Ubuntu server 12.04 刻入U盘中安装系统,中间提示错误:1.检测不到cdrom(即U盘没有挂载上):2.从光盘中读取数据出错.问题如下图所示: 上网搜了下解决 ...
- MySQL数据库中tinyint类型字段读取数据为true和false
今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...
- My Game --文件读取数据
My Game --线段数据 中说到背景的绘制由贝赛尔曲线生成线段,用 DrawNode 画多边形,同时一张背景有两座山,一座山有两条以上贝赛尔曲线保存,用了嵌套的数据类:Bezier,LineLay ...
- Java—从文件中读取数据
1.FileInputStream() // 构建字节输入流对象,参数为文件名 FileInputStream fin = new FileInputStream("message" ...
- 10天学会phpWeChat——第三天:从数据库读取数据到视图
在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...
- 用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据
现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线. 每种GPIB控制器都有它的 函数库(dll库).各种GPIB 控制器的价钱插别很大.这里以一种价钱较便宜的USB-GPIB ...
- winform 异步读取数据 小实例
这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...
随机推荐
- pthon入门之strip()和split()函数简单区分
小白,分享记录学习新感悟 路飞的第一次作业写一个登录的程序,作业的升级需求中有个锁文件的需求,大致上如果用户数错了密码三次将用户写到黑名单上,下次登录锁定: ok基本的要求写完,我们上代码 usern ...
- matlab学习(3) 保存和导入工作区
1.保存和导入工作区变量mat文件 假如创建了两个矩阵A=[1,2;3,4],B=[0,1;1,0] 则工作区就是这样的: 当函数有一个数据量非常大的返回值时,每次调用函数都要执行一遍函数,每次都要等 ...
- s21day11 python笔记
s21day11 python笔记 一.函数小高级 函数名可以当作变量来使用 #示例一: def func(): print(123) func_list = [func, func, func] # ...
- #电脑磁盘分区#新买的电脑一般只有C盘或者C盘和D盘,怎么加多几个盘呢
新买的电脑一般只有C盘或者C盘和D盘,怎么加多几个盘呢 鼠标右键点击桌面我的电脑选择管理 进入计算机管理.选择磁盘管理 若桌面没有我的电脑,可按win+x键,在快捷菜单栏中点击磁盘管理 通过以上两种w ...
- Linux搭建bugfree
1.xampp安装包地址: 链接:https://pan.baidu.com/s/1Th2QvF77jvIGzMROoF2rbg 密码:yoar 2.因为我用的是xshell5连接Linux服务器,直 ...
- ViewpageMaiActity
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=&qu ...
- java——慎用可变参数列表
说起可变参数,我们先看下面代码段,对它有个直观的认识,下方的红字明确地解释了可变参数的意思: public class VarargsDemo{ static int sum(int... args) ...
- cordova最小化app插件的使用: cordova-plugin-appminimize
1. 添加插件:cordova plugin add cordova-plugin-appminimize 2.调用方法: window.plugins.appMinimize.minimize(); ...
- 程序猿大牛 Jeff Atwood 的两本中文书
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/happydeer/article/details/17094271 watermark/2/text ...
- 回顾HashMap
一.HashMap的原理简述 HashMap是基于哈希表的非线程安全的Map实现,内部采用数组+链表实现,其内部类Node定义了数据元素类型,它扩展了Map.Entry<K,V>增加了指向 ...