表格(Table)
CukeTest 为 Java 应用中的表格 提供了 Table 和 TableItem两个控件,以及一套丰富的API,用于获取和编辑表格数据。这些 API 可以帮助您轻松访问和操作表格中的任意单元格数据。
除下面列出的表格控件特有的方法,您还可以使用通用控件方法对表格控件进行更灵活的操作。
表格控件: Table
CukeTest 为 Linux 应用中的表格控件提供了一系列 API,用于获取和操作表格数据。
方法名 | 描述 |
---|---|
clickCell | 点击单元格。 |
cellValue | 获取单元格的值。 |
setCellValue | 设置单元格的值。 |
data | 获取表格所有内容,以二维数组形式返回。 |
getItem | 获取指定单元格的对象。 |
rowData | 获取指定行的所有数据。 |
columnData | 获取指定列的所有数据。 |
select | 选择指定单元格。 |
columnHeaders | 获取表头内容。 |
rowCount | 获取表格的行数。 |
columnCount | 获取表格的列数。 |
类型定义
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列单元格的值:
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列单元格的值:
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列单元格的值为 "新值":
await model.getTable("table").setCellValue(0, 1, "新值");
model.getTable("table").setCellValue(0, 1, "新值")
data()
获取表格中的所有内容,并以二维数组的形式返回。
返回值:
Promise<string[][]>
类型,异步返回表格数据的二维数组。
假设表格数据如下:
学号 | 姓名 | 性别 |
---|---|---|
0001 | 小王 | 男 |
0002 | 小明 | 男 |
0003 | 小红 | 女 |
那么data()
方法返回的数组如下:
[
['0001', '小王', '男'],
['0002', '小明', '男'],
['0003', '小红', '女']
]
示例代码
获取整个表格的数据:
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
类型,返回目标单元格对象。
示例代码
获取指定单元格对象:
let item = model.getTable("table").getItem(0, 1);
item = model.getTable("table").getItem(0, 1)
rowData(rowIndex)
获取指定行的所有数据。
参数:
- rowIndex:
number
类型,目标行的索引,从0开始计算。
返回值:
Promise<string[]>
类型,异步返回目标行的所有数据。
示例代码
获取指定行的所有数据:
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[]>
类型,异步返回目标列的所有数据。
示例代码
获取指定列的所有数据:
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>
类型,异步返回选中的单元格对象。
示例代码
选择指定单元格:
let item = await model.getTable("table").select(0, 1);
item = model.getTable("table").select(0, 1)
columnHeaders()
获取表头的所有内容,并以字符串数组的形式返回。
返回值:
Promise<string[]>
类型,异步返回表头的内容数组。
示例代码
获取表格的所有表头内容:
let headers = await model.getTable("table").columnHeaders();
console.log(`表头内容: ${headers.join(", ")}`);
headers = model.getTable("table").columnHeaders()
print(f"表头内容: {', '.join(headers)}")
rowCount()
获取表格的行数。注意,如果表格含有未加载的部分,则只会计算已加载的行数。
返回值:
Promise<number>
类型,异步返回表格的行数。
示例代码
获取表格的总行数:
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
类型的结果。
示例代码
获取表格的总列数:
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 | 获取单元格所在的列索引。 |
类型定义
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>
类型,异步返回单元格中的数据。
示例代码
获取单元格中的数据:
let cellData = await model.getTableItem("tableitem").data();
console.log(`单元格数据: ${cellData}`);
cell_data = model.getTableItem("tableitem").data()
print(f"单元格数据: {cell_data}")
set(value)
设置单元格中的数据。
参数:
- value:
string
类型,要设置的单元格数据。
返回值:
- 不返回任何值的异步方法。
示例代码
设置单元格中的数据:
await model.getTableItem("tableitem").set("新数据");
model.getTableItem("tableitem").set("新数据")
rowIndex()
获取单元格所在的行索引。
返回值:
Promise<number>
类型,异步返回单元格所在的行索引。
示例代码
获取单元格所在的行索引:
let rowIndex = await model.getTableItem("tableitem").rowIndex();
console.log(`行索引: ${rowIndex}`);
row_index = model.getTableItem("tableitem").rowIndex()
print(f"行索引: {row_index}")
columnIndex()
获取单元格所在的列索引。
返回值:
Promise<number>
类型,异步返回单元格所在的列索引。
示例代码
获取单元格所在的列索引:
let columnIndex = await model.getTableItem("tableitem").columnIndex();
console.log(`列索引: ${columnIndex}`);
column_index = model.getTableItem("tableitem").columnIndex()
print(f"列索引: {column_index}")