Here you can find the Keyword Documentation generated by libdoc.
TableLibrary is a Robot Framework library designed for easy handling of tabular data formats such as CSV, Excel, Parquet, and more.
It provides a unified interface for reading, modifying, and creating tables directly within your Robot Framework tests.
-
Read Tables
- Supports formats like
.csv,.xlsx,.xls,.parquet,.json,.txt (as csv), and more. - Access table contents by column name or index.
- Verifying specific table cells, columns or rows & executing assertions using the
robotframework-assertion-engine
- Supports formats like
-
Modify Existing Tables
- Add, remove, or update rows and columns.
- Apply dynamic modifications during test execution.
-
Create New Tables
- Create tables from lists, dictionaries, or other data sources.
- Export tables to multiple file formats (e.g., CSV, Excel, Parquet).
- Easily generate structured test data in the given file format.
We have included a basic handling of Excel files, but for more complex excel features, please take a look at the following library: robotframework-excelsage
This library got especially written to work with more complex Excel features like e.g. Excel Sheets, etc...
You can install the library using the following command:
pip install robotframework-tablelibrary# Reading CSV file with header column
${content} = Tables.Read Table ${CURDIR}${/}testdata${/}example_01.csv
${result} = BuiltIn.Evaluate "${content}[0][0]" == "index"
BuiltIn.Should Be True ${result}
# Reading CSV file without header column
Tables.Configure Ignore Header True
${content} = Tables.Read Table ${CURDIR}${/}testdata${/}example_01.csv
${result} = BuiltIn.Evaluate "index" not in "${content}"
BuiltIn.Should Be True ${result}
${content} = Tables.Read Table ${CURDIR}${/}testdata${/}example_05.parquet
${result} = BuiltIn.Evaluate "${content}[0][0]" == "_time"
BuiltIn.Should Be True ${result}
# Create some data which should be inserted into the new table
VAR @{headers} = name age
VAR @{person1} = Michael 34
VAR @{person2} = John 19
# Create empty table object - internally in cache
${uuid} = Tables.Create Table headers=${headers}
# Append some rows
Tables.Append Row ${person1}
Tables.Append Row ${person2}
Count Table ${uuid} Rows equal ${3}
# Append a column
VAR @{column1} = city MG ERL
Tables.Append Column ${column1}
Count Table ${uuid} Columns equal ${3}
# Optional: Set new table cell value
Get Table Cell 1 1 equals 34
Tables.Set Table Cell 25 0 1
Get Table Cell 1 1 equals 25
# Insert a new row into the existing table object
VAR @{insert_row} = Lu 26 Hamburg
Insert Row ${insert_row} 0
Get Table Cell 1 0 equals Lu
Count Table ${uuid} Rows equal ${4}
# Generate new headers which should be used in the table
VAR @{headers} = name age
# Create new table object
${uuid} = Create Table ${headers}
# Generate some random data & append as rows to new table
FOR ${_} IN RANGE ${100}
${a} = Generate Random String
${b} = Generate Random String
VAR @{data} ${a} ${b}
Tables.Append Row ${data}
END
# Ensure that data got written into internal table object
Count Table ${uuid} Rows equals ${101}
# Write table to specific file path -> write from cache into persistant file
Write Table ${uuid} ${CURDIR}/results/test_writer_new_table.csv
# Check table content again, but now read table from file path!
Count Table ${CURDIR}/results/test_writer_new_table.csv Rows equals ${101}
See Development.md for more information about contributing & developing this library.
robotframework-tablelibrary is distributed under the terms of the Apache License 2.0 license.