如何用易语言取Excel表的行号

作者&投稿:储广 (若有异议请与网页底部的电邮联系)
易语言 实现 获取我所选择的Excel程序打开的表格 的行数 列数~

.版本 2
.支持库 eDB
.支持库 eGrid

.子程序 _按钮1_被单击
.局部变量 连接文本, 文本型
.局部变量 文件地址, 文本型
.局部变量 SQL语句, 文本型
.局部变量 循环次数, 整数型
.局部变量 循环计次, 整数型
.局部变量 文本变量, 文本型, , "26"
.局部变量 表项索引, 整数型
.局部变量 i, 整数型
.局部变量 k, 整数型

文件地址 = 取运行目录 () + “\1.xls”
.如果 (数据库连接.连接 (“Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=” + 文件地址 + “;DefaultDir=” + 文件地址 + “;”) = 真)
输出调试文本 (“链接成功!”)
.如果真 (记录集.置连接 (数据库连接) = 假)
返回 ()
.如果真结束
SQL语句 = “select * from [Sheet1$]”
记录集.打开 (SQL语句, #SQL语句)
循环次数 = 记录集.记录数量
.计次循环首 (循环次数, 循环计次)
.计次循环首 (26, i)
记录集.读文本 (i - 1, 文本变量 [i])
.计次循环尾 ()
.计次循环首 (26, k)
高级表格1.置数据 (循环计次, k, 1, 文本变量 [k])
.计次循环尾 ()

循环计次 = 循环计次 + 1
记录集.到下一条 ()
.计次循环尾 ()
输出调试文本 (“读入并显示成功!”)
.否则
输出调试文本 (数据库连接.最后错误)
.如果结束

.子程序 __启动窗口_创建完毕
.局部变量 i, 整数型

.计次循环首 (26, i)
高级表格1.插入列 (字符 (i + 64), i)
.计次循环尾 ()
.计次循环首 (1000, i)
高级表格1.插入行 (到文本 (i), i)
.计次循环尾 ()
其他的窗口大小 和行高 列高自行修改吧

方法/步骤


利用易语言编程环境创建一个“Windows窗口程序”。点击菜单“工具”->“支持库配置”项。

在打开的窗口中,找到并勾选“通用对象支持库 2.0版”,并点击“确定”以添加“超级列表框”组件。

接下来在“启动窗口”中绘制如图所示的界面,其中包括一个“外部数据库”和一个“超级列表框”(从扩展面板中可以找到)组件。

然后利用Excel创建一个名为“jiance.xls”的Excel文件。其内容如图所示:
注:将该文件与易语言程序本身放置在同一目录下。

确保选中“启动窗口”,然后为其添加“创建完毕”事件。

接着输入如图所示的易语言代码:
.版本 2
.支持库 iext
.如果真 (外部数据库1.打开 (“ODBC;DBQ=” + 取当前目录 () + “\jiance.xls;Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=0;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;”, , ) = 假)
信息框 (“数据库连接失败!”, #错误图标, )
返回 ()
.如果真结束
查询语句 = “select * from [Sheet1$]”
记录集 = 外部数据库1.查询 (查询语句)

.如果真 (记录集 = 0)
信息框 (“查询失败!”, #错误图标, )
返回 ()
.如果真结束
外部数据库1.到首记录 (记录集)
局部_计次 = 1
超级列表框1.插入列 (, “序号”, 80, , , )
超级列表框1.插入列 (, “姓名”, 80, , , )
超级列表框1.插入列 (, “性别”, 80, , , )
超级列表框1.插入列 (, “年龄”, 80, , , )
.判断循环首 (外部数据库1.尾记录后 (记录集) = 假)
局部_临时A = 外部数据库1.读 (记录集, 1)
局部_临时B = 外部数据库1.读 (记录集, 2)
局部_临时C = 到文本 (外部数据库1.读 (记录集, 3))
索引 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (索引, 0, 到文本 (局部_计次))
超级列表框1.置标题 (索引, 1, 局部_临时A)
超级列表框1.置标题 (索引, 2, 局部_临时B)
超级列表框1.置标题 (索引, 3, 局部_临时C)
外部数据库1.到后一记录 (记录集)
局部_计次 = 局部_计次 + 1
.判断循环尾 ()
外部数据库1.关闭记录集 ()


7
最后点击“运行”按钮,就可以看到易语言成功引用Excel表格中的数据啦。

在VBA中,我通常使用sheet1.range("a65536").end(xlup).row这个来获取最大行,因为这个会比较准,如果你经常写VBA的话,你会发现使用UsedRange.rows.count这一句经常不准,那是因为单元格内的内容即便删除了,只要有格式,哪怕没有数据空行会被统计进去,我们常用的易语言的模块都是使用的UsedRange这个属性

经过我的尝试,sheet1.range("A65536").enx(xlup).row这一句在易语言中的实现方便是这样的(纯手工敲的代码)

子程序:获取Excel最大行

变量

Excel对象:对象

Excel表:对象

区域:对象

行数:整数型

——————————————————

如果真(excel对象.创建("excel.application",)=假)

      返回()

Excel对象.写属性("visible",真)

Excel表=excel对象.读对象型属性("workbooks",).对象型方法("open","d:\111.xls").读对象型属性("sheets",).读对象型属性("item",1)

区域=excel表.读对象型属性("range","A65536","A65536")

行数=区域.读对象型属性("end",-4162).读属性("row",).取数值(1)

调试输出(行数)

必须给我加精,这个问题这在网上找好久也没找到这段代码,这是我一点一点的试出来的




不知你想要在什么状况下获取行号和列号?一下几点或许能帮你。
1、在VBA中环境中
获取最后一行有数据的单元格的行号的代码如下
dim i as long
i=sheet1.range("a65536").end(xlup).row
获取最后一列有数据的单元格的列号的代码如下
dim i as long
i=sheet1.range("iv1").end(xlleft).column
2、想知道表格最多有多少行,在a1单元格输入公式
=countblack(b:b)
想知道表格最多有多少列,在a1单元格输入公式
=countblack(2:2)
3、在工作表中,想取得一列或一行中最后一个有数据的单元格的行号或列号
如果单元格是连续的,中间没有空单元格,可以输入公式=counta(a:a)或=counta(1:1)
如果单元格区域中间有空单元格,可以输入公式,然后按下Ctrl+Shift+Enter键结束公
式编辑
=max(if(a1:a20000="",0,row(a1:a20000))
=max(if(1:1="",0,column(1:1))


易语言导入EXC EL
.局部变量 列对象, 对象 .局部变量 单元格对象, 对象 .局部变量 工作簿对象, 对象 .局部变量 text, 文本型.变量循环首 (0, 选择列表框1.取项目数 () - 1, 1, i).如果真 (选择列表框1.是否被选中 (i))字段 = i + 1 跳出循环 ().如果真结束.变量循环尾 ()' 开始取列 .如果真...

扩展名为“.exe”是什么文件?
.EXE 是可执行文件(程序) \\r\\n\\r\\n★常见的文件后缀名 \\r\\n.ACA:Microsoft的代理使用的角色文档 \\r\\n.acf:系统管理配置 \\r\\n.acm:音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能 \\r\\n.aif:声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放 \\r\\n.AIF:音频文件...

电脑程序运行软件的软件的后缀是什么?
1、 .exe EXE File英文全名executable file ,译作可执行文件,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序。如记事本程序notepad.exe ,可以用来编辑文档,如:测试.txt双击打开notepad.exe记事本程序来进行编辑处理...

什么是命令文件?命令扩展名?求大神指教!!!
.eps:用PostScript语言描述的一种图形文件格式,以文本文件保存,在PostScript图形打印机上能打印出高品质的图形图象,最高能表示32位图形图象.err:编译错误文件,存在于Dbase,Foxbase,Foxpro系列软件环境下.exe:可执行文件,虽然后缀名相同,但具有不同的格式和版本.exp:3DS使用的显示卡驱动程序.exc:Txt文件.flc:Autodesk...

在Windows下,可执行文件的扩展名有哪些
在DOS中,规定了三种扩展名为可执行文件,即EXE、COM和BAT。所谓可执行文件,就是在DOS下直接键入主文件名就可以执行程序的文件。除EXE、COM和BAT之外,其他所有文件都不能在DOS下直接执行,称为非执行文件。

文件格式
HGL(HP Graphic Language)是HP公司创建的一种矢量图形语言。 WPG(DrawPerfect)矢量文件。 TIF最初用于扫描仪和桌面出版业,TIF程式图像可以是RGB真彩色的。 TGA位图文件,为Targa公司开发的支持8位到32位颜色深度图像文件,结构简单,少有变化,易转换。 VDA ICB VST与TGA相似,均为Targa公司开发的位图文件。 JPG JPE...

谁知道各种文件的后缀名?
如READ.ME用中文理解就是"读我",即提示用户在使用软件前先看看这个文件的内容,以获取更多的提示信息。而更重要的是,DOS下规定用后缀名来区分各种不同的文件。 在DOS下最容易遇到的首先是可执行文件,后缀名有两类:*.exe、*.com(此处的*表示文件名任意),它们是由汇编语言或其它高级语言编出的程序经过编译后...

windows中常见的文件类型及扩展名都有哪些
3DS使用的显示卡驱动程序 .exc:Txt文件 .flc:Autodesk Animator和Animatorpro的动画文件,支持256色,最大的图象象索是64000*64000,支持压缩,广泛用于动画图形中的动画序列,计算机辅助设计和计算机游戏应用程序 .fnd:保存的搜索结果 .fon:点阵字库文件 .for:Fortran语言程序 .fot:指向字体的快捷键 .fp: 配置文件,...

系统文件的后缀名有哪些?
更加易于使用 .eps 用PostScript语言描述的一种图形文件格式,以文本文件保存,在PostScript图形打印机上能打印出高品质的图形图象,最高能表示32位图形图象 .err 编译错误文件,存在于Dbase,Foxbase,Foxpro系列软件环境下 .exe 可执行文件,虽然后缀名相同,但具有不同的格式和版本 .exp 3DS使用的显示卡驱动程序 .exc ...

电脑文件的后缀名有哪些
如READ.ME用中文理解就是“读我”,即提示用户在使用软件前先看看这个文件的内容,以获取更多的提示信息。而更重要的是,DOS下规定用后缀名来区分各种不同的文件。 在DOS下最容易遇到的首先是可执行文件,后缀名有两类:*.exe、*.com(此处的*表示文件名任意),它们是由汇编语言或其它高级语言编出的程序经过编译后...

河西区13880486521: 易语言如何获取高级表格中的一个记录 -
祢询同贝: 可以通过像这种方式来引用另一个窗口中的控件:比如你在窗口2 想得到窗口1中的高级表格的光标所在行: 在窗口2中的代码如下:当前行=窗口1.高级表格1.取光标行号() 当前列=窗口1.高级表格1.取光标列号()其它属性的引用也是如此.不知道你问的是不是这个意思?你的问题描述实在不清楚.

河西区13880486521: 易语言 实现 获取我所选择的Excel程序打开的表格 的行数 列数 -
祢询同贝: .版本 2.支持库 eDB.支持库 eGrid.子程序 _按钮1_被单击.局部变量 连接文本, 文本型.局部变量 文件地址, 文本型.局部变量 SQL语句, 文本型.局部变量 循环次数, 整数型.局部变量 循环计次, 整数型.局部变量 文本变量, 文本型, , "26"....

河西区13880486521: 易语言高级表格选中整行代码 -
祢询同贝: 方法有两种:1234567891011121314.版本 2 .子程序 __启动窗口_创建完毕 .判断开始 (读配置项 (“配置文件路径”, “设置”, “选择框”, ) = “真”) 选择框1.选中 = 真.默认 选择框1.选中 = 假.判断结束 .子程序 _选择框1_被单击 写配置项...

河西区13880486521: 易语言读取某一行数据 -
祢询同贝: 这个我也在做,不过是类同.我使用的代码是:主要是取光标的行号做X坐标,读()是Y坐标.从而定位每一个表格的内容提取出来!

河西区13880486521: 易语言 高级表格.行数() 命令出错 -
祢询同贝: “高级表格.行数”是对象属性,相当于变量,而非对象方法函数,把后面的括号去掉就行了!如下:.版本 2.支持库 eGrid.子程序 __启动窗口_创建完毕 高级表格.行数 = 120 高级表格.列数 = 10 控件编号不是必须的,但如果提示:找不到指定的变量名称“高级表格”的话就要像一楼说的注意下控件编号了

河西区13880486521: EXCEL 动态获取行号 -
祢询同贝: 可以通过INDIRECT函数引用单元格中的数值作为行号. 如果两个数值分别在B1和B2单元格,那么 输入 =COUNTA(INDIRECT("A"&B1&":A"&B2)) 得到统计以B1和B2单元格中的数值作为A列引用范围的非空单元格个数. 输入 =SUM(INDIRECT("A"&B1&":A"&B2)) 得到以B1和B2单元格中的数值作为A列引用范围的和.

河西区13880486521: 易语言如何读取excel中的指定的某行某列 -
祢询同贝: 你看看excel里面的命令,看看就知道的了

河西区13880486521: 易语言不用打开文件如何取文本文件的行数? -
祢询同贝: 最笨的办法,读入文件,再用换行符 分割文本.得出的文本数组就是你所需要的行数

河西区13880486521: 如何获取excel相对行号? -
祢询同贝: 用下面的方法试试. 设你需要统计的数据在a列.则公式为=SUBTOTAL(3,A1:A10)

河西区13880486521: 易语言怎样实现数字取编辑框行数内容
祢询同贝: .版本 2 .支持库 iext2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 a, 文本型, , "0" 超级编辑框1.内容 = “aaaaaaa” + #换行符 + “bbbbbb” + #换行符 + “ccccccccccc” a = 分割文本 (超级编辑框1.内容, #换行符, ) 编辑框2.内容 = a [3]

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网