Excel 数据链接函数参考 (iLogic) 您所在的位置:网站首页 咋做电子表格文档 Excel 数据链接函数参考 (iLogic)

Excel 数据链接函数参考 (iLogic)

2024-06-29 13:30| 来源: 网络整理| 查看: 265

iLogic 提供了一些用于读取和写入 Microsoft® Excel 电子表格文档的规则函数。若要访问 Excel 数据链接函数,请展开 iLogic“编辑规则”对话框“代码段”区域中“系统”选项卡上的“Excel 数据链接”节点。

提供了以下两种类型的 Excel 数据链接函数:

用于从表中读取数据的函数 用于从特定的单元格读取和写入数据的函数

若要读取和写入其他文件格式,请将自定义 VB.NET 代码添加到规则中。

使用专用函数 ThisBOM.Export 将部件 BOM 表导出为 Microsoft® Excel 和其他格式。

指定 Excel 文件

您可以将 Microsoft® Excel 数据嵌入或链接到 Inventor 文档,或者将其保留为外部文件。该函数需要文件名,或者链接式或嵌入式 Excel 文件的规格。

如果需要文件名,您可以指定相对路径或绝对路径。但是,使用绝对路径可能会导致难以将模型发送给其他计算机上的其他用户。如果未指定路径,iLogic 会假定 Excel 文档位于当前 Inventor 文档所在的文件夹中。相对路径将被解释为相对于包含该 Inventor 文档的文件夹。

iLogic 还会在项目工作空间路径下搜索文件。您可以使用项目工作空间路径下的相对路径。

支持的文件扩展名包括 .xls、.xlsx、.xlsm 和 .xlsb。

您还可以指定链接式或嵌入式电子表格,而不是文件名。针对嵌入式电子表格使用语法 3rd Party:Embedding#。

针对链接式电子表格使用语法 3rd Party:LinkedName.xls。指定在 Inventor 模型树中“第三方”下显示的名称。

如果使用嵌入式表,请使用“参数”对话框上的“链接”嵌入该表。请勿更改 Inventor 为嵌入式表指定的默认名称(例如,Embedding 1)。GoExcel 需要初始名称。

注: 请勿在语法 3rd Party:Name 中的 : 字符后添加空格。

若要链接文件,请单击“管理”选项卡 “插入”面板 “插入对象”,或者使用“参数”对话框中的“链接”。

GoExcel.FindRow

根据一个或多个列值条件搜索行。

语法

GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)

”filename”

指定数据文件。

”sheetname”

包含要搜索的表的 Excel 文档中的工作表。该工作表可以是现有的任意工作表。

”first column title”

要搜索的表中的第一列的标题。列标题通常放在第 1 行中,并且从 A 列开始。

”operator”

可能值包括:

=:查找列值大于或等于指定值的行。 =:查找文本或数字列值等于指定值的行。

value to look for

可以使用明确的值、参数或局部变量指定的文本值或数字值。

”second column title”

要搜索的表中的第二列的标题。

”operator”

= 或 =

value to look for

”third column title”

根据多个条件查找行。

返回值

符合搜索条件的行号(整数)。如果找不到符合条件的行,则该值为 -1。

可能的错误

找不到文件 找不到工作表名称 找不到列名称 输入值是错误的类型(不符合列值类型)

Excel 表要求

表配置必须是水平的(按行而不是按列定义的配置)。 列的第一个单元格必须是标题。 查询值可以是数字或文本。

示例

这些示例将参数变量 i 的值设为表中的行号。Dia 等于 0.2,Len 大于或等于 4.1。第一个示例参考了外部电子表格,第二个示例参考了嵌入式电子表格。

i = GoExcel.FindRow("mytable.xls", "Sheet1", "Dia", "=", 0.2, "len", ">=",4.1) i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "Dia", "=", 0.2, "len",">=", 4.1)

在这些示例中,第 5、6 和 7 行符合第一个条件 Dia=.2。但是,只有第 7 行同时符合条件 Dia=.2 和 len>=4.1。

GoExcel.CurrentRowValue

读取使用 GoExcel.FindRow 函数找到的行中的值。

语法

GoExcel.CurrentRowValue("column name")

”column name”

用于要从当前行检索的单元格值的列标题名称。

返回值

当前行(先前使用 GoExcel.FindRow 函数找到的行)的列中的单元格值。

错误

如果未找到列,则返回错误消息。

示例

i = GoExcel.FindRow("iLogic_SCHS.xls", "Sheet1", "thread_diameter", "=", Screw_Size, "screw-length", ">=", screw_length_required) thread_diameter = GoExcel.CurrentRowValue("thread_diameter") screw_length = GoExcel.CurrentRowValue("screw_length") head_diameter = GoExcel.CurrentRowValue("head_diameter") head_thickness = GoExcel.CurrentRowValue("head_thickness") socket_size = GoExcel.CurrentRowValue("socket_size") thread_pitch = GoExcel.CurrentRowValue("thread_pitch") GoExcel.CellValue

读取电子表格单元格的值或将值写入电子表格单元格。

语法

GoExcel.CellValue("filename", "sheetname", "cellnumber")

”filename”

请参见“指定 Excel 文件”。

”sheetname”

包含目标单元格的 Excel 文档中的工作表名称。该工作表可以是现有的任意工作表。

”cell number”

要读取或写入的单元格地址(例如“A7”)。您还以指定工作表内的特定范围。

返回值

单元格值 出错时不进行任何指定。

错误

找不到文件 找不到工作表名称

Excel 表格式要求

单元格值可以是数字或文本。

示例

读取嵌入式电子表格:

head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")

写入嵌入式电子表格:

GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad

读取外部电子表格:

head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")

写入外部电子表格:

GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save 注: 需要使用 GoExcel.Save 保存对电子表格所做的更改: GoExcel.CurrentCellValue, GoExcel.CellValue

继使用 GoExcel.CellValue 或 GoExcel.Open 函数之后,从电子表格中的特定单元格地址读取值或向特定单元格地址写入值。该函数使用先前打开的文件和工作表。

语法

GoExcel.CurrentCellValue("cellnumber")

GoExcel.CellValue("cellnumber") (without specifying a filename and sheet name)

”cellnumber”

单元格地址或特定的单元格值范围,用于从当前电子表格读取值或向其中写入值。

返回值

指定的单元格号中的单元格值。

错误

未指定出错时的返回值 错误消息显示

示例

从一个电子表格读取一系列单元格:

head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")

在电子表格文档中写入一系列单元格:

GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") = head_rad GoExcel.CellValue("B1") = head_thick GoExcel.CellValue("C1") = pin_length GoExcel.CellValue("D1") = shaft_rad GoExcel.Save GoExcel.NameRangeValue

用法与 CellValue 函数类似。不再使用单元格地址,而是指定在 Excel 工作簿中定义的特定范围。该名称必须是工作簿中的名称,该范围必须限定为一个单元格。您可以使用标准 CellValue 语法(使用名称而不是单元格地址)访问工作表内的特定范围。

在规则中使用 NamedRangeValue 之前,先使用 GoExcel.CellValue 或 GoExcel.Open 打开 Excel 文件。

语法

GoExcel.NamedRangeValue("PinLength")

GoExcel.Open

打开指定的 Excel 电子表格,还可以激活特定的工作表。然后,可以使用 GoExcel.FindRow 和 GoExcel.CellValue 等函数从工作表中提取信息或修改工作表。

语法

GoExcel.Open("filename", “sheetname”)

”filename”

请参见“指定 Excel 文件”。

”sheetname”

要激活的 Excel 文档中的工作表名称。该工作表可以是现有的任意工作表。

返回值

N/A

错误

未找到 Excel 文件。

示例

当未指定工作表名称时,将假设工作表名称为“Sheet1”。

GoExcel.Open("Spreadsheet.xls")

还可以指定其他工作表。

GoExcel.Open("Spreadsheet.xls", "MyOtherSheet") GoExcel.Save

保存当前的 Excel 文档。如果您使用 GoExcel.CellValue 或 GoExcel.CurrentCellValue 函数修改了单元格,请使用该函数。

返回值

N/A

错误

N/A

示例

GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save GoExcel.CellValues

该函数有两个用途:

从 Excel 电子表格中的指定单元格范围读取值,并将这些值指定给多值列表。 从多值列表获取值,然后将这些值写入到 Excel 电子表格中的指定单元格范围。

从 Excel 电子表格读取

您可以从垂直方向的单元格范围读取。该函数将从第一个单元格开始持续向下读取值,直到到达函数中指定的第二个单元格为止:

Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")

如果空字符串 ("") 代替了第二个单元格地址,将从第一个单元格地址开始持续向下读取值,直到遇到一个空单元格为止:

Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")

您可以从水平方向的单元格范围读取:

Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")

如果先前在规则中参考了电子表格,您还可以省略文件名和工作表名称:

Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")

写入 Excel 电子表格

您可以将值写入垂直方向的单元格范围。该函数将从第一个单元格开始持续向下写入值,直到到达函数中指定的第二个单元格为止:

GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")

您可以将值写入垂直方向的单元格范围。如果空字符串 ("") 代替了第二个单元格地址,iLogic 将使用与多值列表成员数相同的单元格来包含这些成员。

GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")

您可以将值写入水平方向的单元格范围:

GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")

如果先前在规则中参考了电子表格,您还可以省略文件名和工作表名称:

GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter") GoExcel.Close

关闭当前的 Excel 电子表格。

GoExcel.TitleRow

用在 GoExcel.FindRow 之前,用于指定电子表格中包含列名称的行的行号。默认行号为 1。如果在列名称行上方有额外的行,请更改该值。

示例

GoExcel.TitleRow = 2 GoExcel.FindRowStart

用在 GoExcel.FindRow 函数之前,用于指定电子表格中包含数据的第一个行的行号。默认的行号为 2。

语法

GoExcel.FindRowStart =

开始有数据的行。

示例

默认值 2 表示数据从第 2 行开始,跟在一个标题行之后:

GoExcel.FindRowStart = 2

如果有两个标题行,请在规则中包含 GoExcel.FindRow 的语句之前添加以下语句:

GoExcel.FindRowStart = 3 GoExcel.ChangeSourceOfLinked

用于从 iLogic 规则中访问“更改源”操作。

该函数使用其他电子表格替换当前驱动模型的 Excel 电子表格。然后新电子表格中包含的值将驱动模型的尺寸。

注: 从链接式 Excel 电子表格的关联菜单中,该函数还可以用作手动操作。

语法

changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)

partialOldName

要替换的电子表格名称部分。

partialOldName 可以是空字符串 "",以匹配第一个链接式 Excel 文件。通常,零件或部件只有一个 Excel 文件。

newName

完整的新电子表格名称,可以是绝对文件名也可以是相对文件名。

示例

If size = "small" Then changeOK = GoExcel.ChangeSourceOfLinked("pipe"," smallpipe.xlsx") ElseIf size = "medium" Then changeOK = GoExcel.ChangeSourceOfLinked("pipe", "mediumpipe.xlsx") ElseIf size = "large" Then changeOK = GoExcel.ChangeSourceOfLinked("pipe", "largepipe.xlsx") End If GoExcel.Tolerance

与 GoExcel.FindRow 函数一起使用,用于搜索某个范围内的值,而不是一个确切值。默认公差为 0.0000001 并且与文档单位无关。

语法

GoExcel.Tolerance =

设定更高的公差以扩大可接受值的范围。

示例

您可以使用以下语句进行搜索:

GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)

该语句将变为与以下不使用公差的搜索语句等效:

i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有