表格(Table)

CukeTest 为 Java 应用中的表格 提供了 TableTableItem两个控件,以及一套丰富的API,用于获取和编辑表格数据。这些 API 可以帮助您轻松访问和操作表格中的任意单元格数据。

除下面列出的表格控件特有的方法,您还可以使用通用控件方法对表格控件进行更灵活的操作。

表格控件: Table

CukeTest 为 Linux 应用中的表格控件提供了一系列 API,用于获取和操作表格数据。

方法名 描述
clickCell 点击单元格。
cellValue 获取单元格的值。
setCellValue 设置单元格的值。
data 获取表格所有内容,以二维数组形式返回。
getItem 获取指定单元格的对象。
rowData 获取指定行的所有数据。
columnData 获取指定列的所有数据。
select 选择指定单元格。
columnHeaders 获取表头内容。
rowCount 获取表格的行数。
columnCount 获取表格的列数。

类型定义

JavaScript
Python
export interface IQTable extends IQtControl {
    clickCell(rowIndex: number, columnToFind: string | number);
    cellValue(rowIndex: number, columnNameOrIndex: number | string): Promise<string>;
    setCellValue(rowIndex: number, columnToFind: string | number, value: string);
    data(): Promise<string[][]>;
    getItem(rowIndex: number, columnIndex: number): IJTableItem;
    rowData(rowIndex: number): Promise<string[]>;
    columnData(nameOrIndex: string | number): Promise<string[]>;
    select(rowIndex: number, columnIndex: number): Promise<IJTableItem>;
    columnCount(): Promise<number>;
    columnHeaders(): Promise<string[]>;
    rowCount(): Promise<number>;
}
class JTable(JControl):
	def clickCell(rowIndex: int, columnToFind: Union[str, int]) -> any
	def cellValue(rowIndex: int, columnNameOrIndex: Union[str, int]) -> str
	def setCellValue(rowIndex: int, columnToFind: Union[str, int], value: str) -> any
	def data() -> List[List[str]]
	def getItem(rowIndex: int, columnIndex: int) -> JTableItem
	def rowData(rowIndex: int) -> List[str]
	def columnData(nameOrIndex: Union[str, int]) -> List[str]
	def select(rowIndex: int, columnIndex: int) -> JTableItem
	def columnCount() -> int
	def columnHeaders() -> List[str]
	def rowCount() -> int

clickCell(rowIndex, columnToFind)

点击表格中指定行列单元格。

参数:

  • rowIndex: number类型,目标单元格的位置索引,从0开始计算。
  • columnToFind: number类型或者string类型,目标单元格的位置索引,从0开始计算。也可以传入表头中目标列的名字,比如"Name"、'ID"之类的。

返回值:

  • 不返回任何值的异步方法。

示例代码

获取表格中第1行,第2列单元格的值:

JavaScript
Python
let cellValue = await model.getTable("table").clickCell(0, 1);
cell_value = model.getTable("table").clickCell(0, 1)

cellValue(rowIndex, columnNameOrIndex)

获取表格中指定行列单元格的值。此方法是setCellValue()的对应Getter

参数:

  • rowIndex: number类型,目标单元格的位置索引,从0开始计算。
  • columnNameOrIndex: number类型或者string类型,目标单元格的位置索引,从0开始计算。也可以传入表头中目标列的名字,比如"Name"、'ID"之类的。

返回值:

  • Promise<string>类型,异步返回目标单元格的值。如果行列位置超出范围,或者传入的列名不存在,则会抛出 1006: OutOfRange 错误。

示例代码

获取表格中第1行,第2列单元格的值:

JavaScript
Python
let cellValue = await model.getTable("table").cellValue(0, 1);
console.log(`单元格值: ${cellValue}`);
cell_value = model.getTable("table").cellValue(0, 1)
print(f"单元格值: {cell_value}")

setCellValue(rowIndex, columnNameOrIndex, value)

设置表格中指定行列单元格的值。列位置可以传入列索引或表头中的列名。

参数:

  • rowIndex: number类型,目标单元格的位置索引,从0开始计算。
  • columnNameOrIndex: number类型或者string类型,目标单元格的位置索引,从0开始计算。也可以传入表头中的列名,比如"Name"、'ID"之类的。
  • value: string类型,期望设置的单元格值。

返回值:

  • 不返回任何值的异步方法。如果行列位置超出范围,或者传入的列名不存在,则会抛出 1006: OutOfRange 错误。

示例代码

设置表格中第1行,第2列单元格的值为 "新值":

JavaScript
Python
await model.getTable("table").setCellValue(0, 1, "新值");
model.getTable("table").setCellValue(0, 1, "新值")

data()

获取表格中的所有内容,并以二维数组的形式返回。

返回值:

  • Promise<string[][]>类型,异步返回表格数据的二维数组。

假设表格数据如下:

学号 姓名 性别
0001 小王
0002 小明
0003 小红

那么data()方法返回的数组如下:

[  
    ['0001', '小王', '男'],  
    ['0002', '小明', '男'],  
    ['0003', '小红', '女']  
]

示例代码

获取整个表格的数据:

JavaScript
Python
let tableData = await model.getTable("table").data();
console.log(`表格数据: ${JSON.stringify(tableData)}`);
table_data = model.getTable("table").data()
print(f"表格数据: {table_data}")

getItem(rowIndex, columnIndex)

获取指定单元格的对象。

参数:

  • rowIndex: number类型,目标单元格的位置索引,从0开始计算。
  • columnIndex: number类型,目标单元格的位置索引,从0开始计算。

返回值:

  • IJTableItem类型,返回目标单元格对象。

示例代码

获取指定单元格对象:

JavaScript
Python
let item = model.getTable("table").getItem(0, 1);
item = model.getTable("table").getItem(0, 1)

rowData(rowIndex)

获取指定行的所有数据。

参数:

  • rowIndex: number类型,目标行的索引,从0开始计算。

返回值:

  • Promise<string[]>类型,异步返回目标行的所有数据。

示例代码

获取指定行的所有数据:

JavaScript
Python
let rowData = await model.getTable("table").rowData(0);
console.log(`行数据: ${rowData.join(", ")}`);
row_data = model.getTable("table").rowData(0)
print(f"行数据: {', '.join(row_data)}")

columnData(nameOrIndex)

获取指定列的所有数据。

参数:

  • columnIndex: number类型,目标列的索引,从0开始计算。

返回值:

  • Promise<string[]>类型,异步返回目标列的所有数据。

示例代码

获取指定列的所有数据:

JavaScript
Python
let columnData = await model.getTable("table").columnData(0);
console.log(`列数据: ${columnData.join(", ")}`);
column_data = model.getTable("table").columnData(0)
print(f"列数据: {', '.join(column_data)}")

select(rowIndex, columnIndex)

选择指定单元格。

参数:

  • rowIndex: number类型,目标单元格的位置索引,从0开始计算。
  • columnIndex: number类型,目标单元格的位置索引,从0开始计算。

返回值:

  • Promise<IJTableItem>类型,异步返回选中的单元格对象。

示例代码

选择指定单元格:

JavaScript
Python
let item = await model.getTable("table").select(0, 1);
item = model.getTable("table").select(0, 1)

columnHeaders()

获取表头的所有内容,并以字符串数组的形式返回。

返回值:

  • Promise<string[]>类型,异步返回表头的内容数组。

示例代码

获取表格的所有表头内容:

JavaScript
Python
let headers = await model.getTable("table").columnHeaders();
console.log(`表头内容: ${headers.join(", ")}`);
headers = model.getTable("table").columnHeaders()
print(f"表头内容: {', '.join(headers)}")

rowCount()

获取表格的行数。注意,如果表格含有未加载的部分,则只会计算已加载的行数。

返回值:

  • Promise<number> 类型,异步返回表格的行数。

示例代码

获取表格的总行数:

JavaScript
Python
let rowCount = await model.getTable("table").rowCount();
console.log(`表格行数: ${rowCount}`);
row_count = model.getTable("table").rowCount()
print(f"表格行数: {row_count}")

columnCount()

获取表格的列数,该值与 columnHeaders() 方法返回的数组长度一致。

返回值:

  • Promise<number>,异步的返回number类型的结果。

示例代码

获取表格的总列数:

JavaScript
Python
let columnCount = await model.getTable("table").columnCount();
console.log(`表格列数: ${columnCount}`);
column_count = model.getTable("table").columnCount()
print(f"表格列数: {column_count}")

单元格控件: TableItem

CukeTest 为 Java 应用中的单元格控件(TableItem)提供了一系列 API,用于获取和设置单元格数据,以及获取单元格的行列索引。

方法名 描述
data 获取单元格中的数据。
set 设置单元格中的数据。
rowIndex 获取单元格所在的行索引。
columnIndex 获取单元格所在的列索引。

类型定义

JavaScript
Python
export interface IJTableItem extends IJControl {
    data(): Promise<string>;
    set(value: string): Promise<void>;
    rowIndex(): Promise<number>;
    columnIndex(): Promise<number>;
}
class JTableItem(JControl):
    def data() -> str
    def set(value: str) -> None
    def rowIndex() -> int
    def columnIndex() -> int

data()

获取单元格中的数据。

返回值:

  • Promise<string> 类型,异步返回单元格中的数据。

示例代码

获取单元格中的数据:

JavaScript
Python
let cellData = await model.getTableItem("tableitem").data();
console.log(`单元格数据: ${cellData}`);
cell_data = model.getTableItem("tableitem").data()
print(f"单元格数据: {cell_data}")

set(value)

设置单元格中的数据。

参数:

  • value: string类型,要设置的单元格数据。

返回值:

  • 不返回任何值的异步方法。

示例代码

设置单元格中的数据:

JavaScript
Python
await model.getTableItem("tableitem").set("新数据");
model.getTableItem("tableitem").set("新数据")

rowIndex()

获取单元格所在的行索引。

返回值:

  • Promise<number>类型,异步返回单元格所在的行索引。

示例代码

获取单元格所在的行索引:

JavaScript
Python
let rowIndex = await model.getTableItem("tableitem").rowIndex();
console.log(`行索引: ${rowIndex}`);
row_index = model.getTableItem("tableitem").rowIndex()
print(f"行索引: {row_index}")

columnIndex()

获取单元格所在的列索引。

返回值:

  • Promise<number>类型,异步返回单元格所在的列索引。

示例代码

获取单元格所在的列索引:

JavaScript
Python
let columnIndex = await model.getTableItem("tableitem").columnIndex();
console.log(`列索引: ${columnIndex}`);
column_index = model.getTableItem("tableitem").columnIndex()
print(f"列索引: {column_index}")

results matching ""

    No results matching ""