路亦洲 发表于 2023-2-4 02:03:07

如何使用COM对象后台调用Excel进行操作?

本帖最后由 路亦洲 于 2023-2-4 02:17 编辑

各位大哥,在易语言中,可以对象创建(“Excel.Application”, ),后台操作Excel,

易语言中的发生,可以直接承接父对象的子对象进行属性,方法的操作,但是在火山中,如下代码:<代码在一楼>
http://ys-f.ysepan.com/308650243/014591843/klrR6Mt58146J33JLP2305/**截图_20230204015746.png
可是:http://ys-f.ysepan.com/308650234/014591844/j74285H264JL46ljvQ2Na8/20230204015746.png
D:\voldev\灯谜计分工具\src\main.v>, 274: 错误: 没有找到所指定名称的类"Workbooks"
<D:\voldev\灯谜计分工具\src\main.v>, 274: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读无参数对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 275: 错误: 没有找到所指定名称的类"ExcelWork"
<D:\voldev\灯谜计分工具\src\main.v>, 275: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"无参数对象型方法"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 277: 错误: 没有找到所指定名称的类"Sheets"
<D:\voldev\灯谜计分工具\src\main.v>, 277: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读无参数对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 278: 错误: 没有找到所指定名称的类"ExcelSheet"
<D:\voldev\灯谜计分工具\src\main.v>, 278: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 279: 错误: 没有找到所指定名称的类"Range"
<D:\voldev\灯谜计分工具\src\main.v>, 279: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 281: 错误: 没有找到所指定名称的类"Range"
<D:\voldev\灯谜计分工具\src\main.v>, 281: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 283: 错误: 没有找到所指定名称的类"Range"
<D:\voldev\灯谜计分工具\src\main.v>, 283: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 285: 错误: 没有找到所指定名称的类"Range"
<D:\voldev\灯谜计分工具\src\main.v>, 285: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 290: 错误: 没有找到所指定名称的类"Font"
<D:\voldev\灯谜计分工具\src\main.v>, 290: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 294: 错误: 没有找到所指定名称的类"Font"
<D:\voldev\灯谜计分工具\src\main.v>, 294: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 299: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 299: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 302: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 302: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 305: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 305: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 308: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 308: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 319: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 319: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 324: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 324: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 329: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 329: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.
<D:\voldev\灯谜计分工具\src\main.v>, 334: 错误: 没有找到所指定名称的类"单元格"
<D:\voldev\灯谜计分工具\src\main.v>, 334: 注意: 根据火山语法在以动态格式调用静态方法(该方法首参数数据类型必须为方法所处类本身)时的自动转换规则,调用对象被自动转移到了被调用方法"读对象型属性"参数表的首部.

这么多报错了!
在易语言中能用的属性名的方法名,在火山pc就怎么就不行了吗?或者火山pc也应该有像易语言一样,有COM对象.查看(),方便编写代码

路亦洲 发表于 2023-2-4 02:05:30

http://ys-f.ysepan.com/308650243/014591843/klrR6Mt58146J33JLP2305/**截图_20230204015746.png

路亦洲 发表于 2023-2-4 02:13:43

本帖最后由 路亦洲 于 2023-2-4 02:18 编辑

<img src="http://ys-f.ysepan.com/308650234/014591844/j74285H264JL46ljvQ2Na8/20230204015746.png"/>

路亦洲 发表于 2023-2-4 02:34:43


世恒大哥的例程:http://bbs.voldp.com/forum.php?mod=viewthread&tid=9218&highlight=excel
<无返回值> 读无参数对象型属性 (COM对象类 所操作本对象, 文本型 属性名称, COM对象类(需求:数据类型; 返回值类型:0) 所欲获取数据类型)
    所处类: COM对象类; 所处包: 火山.基本

      读取并返回本对象中所指定名称COM对象类属性的值. 本方法用作读取无参数的COM属性值.
      执行本方法如果失败,返回内容为空的该类对象(COM对象类的"是否为空"方法返回真).
      紧跟本方法后调用"是否成功"方法将返回本方法是否执行成功,调用"取错误"方法将返回具体的错误码值(成功将返回"COM方法调用结果.成功").

    参数<1>的名称为"所操作本对象", 类型为"COM对象类".
    参数<2>的名称为"属性名称", 类型为"文本型". 提供所欲读取属性的名称
    参数<3>的名称为"所欲获取数据类型", 类型为"COM对象类(需求:数据类型; 返回值类型:0)". 提供所欲获得的返回值数据类型
明明写着无返回值,怎么就能用“=”接收对象的返回呢?真搞不懂火山pc的注释

路亦洲 发表于 2023-2-4 05:12:03

参考世恒大哥的代码,结合以前易语言的经验,已经解决了。我另写个贴子吧

创世魂 发表于 2023-2-4 08:36:52

http://bbs.voldp.com/forum.php?mod=viewthread&tid=16223   火山官方已经有excel库,这是读取excel表格的例子。

路亦洲 发表于 2023-2-4 15:28:21

创世魂 发表于 2023-2-4 08:36
http://bbs.voldp.com/forum.php?mod=viewthread&tid=16223   火山官方已经有excel库,这是读取excel表格的 ...

我还是使用COM对象调用吧,比较熟悉,从易语言开始就是这样的。已经参考世恒的例程
页: [1]
查看完整版本: 如何使用COM对象后台调用Excel进行操作?