表格(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() -> intclickCell(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() -> intdata()
获取单元格中的数据。
返回值:
Promise<string>类型,异步返回单元格中的数据。
示例代码
获取单元格中的数据:
let cellData = await model.getTableItem("itemName").data();
console.log(`单元格数据: ${cellData}`);cell_data = model.getTableItem("itemName").data()
print(f"单元格数据: {cell_data}")set(value)
设置单元格中的数据。
参数:
- value:
string类型,要设置的单元格数据。
返回值:
- 不返回任何值的异步方法。
示例代码
设置单元格中的数据:
await model.getTableItem("itemName").set("新数据");model.getTableItem("itemName").set("新数据")rowIndex()
获取单元格所在的行索引。
返回值:
Promise<number>类型,异步返回单元格所在的行索引。
示例代码
获取单元格所在的行索引:
let rowIndex = await model.getTableItem("itemName").rowIndex();
console.log(`行索引: ${rowIndex}`);row_index = model.getTableItem("itemName").rowIndex()
print(f"行索引: {row_index}")columnIndex()
获取单元格所在的列索引。
返回值:
Promise<number>类型,异步返回单元格所在的列索引。
示例代码
获取单元格所在的列索引:
let columnIndex = await model.getTableItem("itemName").columnIndex();
console.log(`列索引: ${columnIndex}`);column_index = model.getTableItem("itemName").columnIndex()
print(f"列索引: {column_index}")