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的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...
随机推荐
- linux ar命令参数及用法详解--linux建立、修改或抽取备存文件命
功能说明:建立或修改备存文件,或是从备存文件中抽取文件. 语 法:ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>] ...
- Vagrant 创建虚拟环境
1. 添加box vagrant box add --name centos6.8/cms boxname.box 2.初始化admin环境 vagrant init centos6.8/cms ad ...
- JUnit4测试报错:class not found XXX
初学java框架,最近用eclipse跟着视频坐淘淘商城这个项目,其中使用了JUnit4做单元测试.当运行测试代码时,项目报错:class not found xxx. 借助了其他大神的博客,论坛等 ...
- SQL 优化经历
一次非常有趣的 SQL 优化经历 阅读本文大概需要 6 分钟. 前言 在网上刷到一篇数据库优化的文章,自己也来研究一波. 场景 数据库版本:5.7.25 ,运行在虚拟机中. 课程表 #课程表 cr ...
- Web前端入门教程之浏览器兼容问题及解决方法
JavaScript 被称为JS,是作为浏览器的内置脚本语言,为我们提供操控浏览器的能力,可以让网页呈现出各种特殊效果,为用户提供友好的互动体验.JS是Web前端入门教程中的重点和难点,而浏览器兼容性 ...
- jQeury 批量删除
/*批量删除*/ function datadel(){ var ids = new Array(); $("input[name='batch']:checked").each( ...
- easyui-datebox 点击事件
<div class="form-group col-xs-5 col-md-5 col-lg-6" style = "margin-left: 0px;" ...
- DotNetBar中Supergrid显示树形数据
1.向窗体中拖一个Supergrid控件 2.添加列ID,NAME,MATH,CN,SEX 3.在任务窗格中勾选“Show Tree Lines”和“Show Tree Buttons” 4.添加数据 ...
- [蓝桥杯]ALGO-20.算法训练_求先序排列
问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=). 输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所求 ...
- 经典笔试题型----IT经理(IT Manager)
一般企业设置IT部门都是服务性质,虽然谈IT需要成为战略部门许多年,但用脑子想下,这概率有多少?企业存在的第一目标是:赚取利润.贸易型企业最重要的部门为销售部,生产型企业最重要的部门为销售部与生产部, ...