This release is a pre-release and may not be stable for production use.
RobotFramework Table Library
Statistics
Keyword Documentation
Here you can find the Keyword Documentation generated by libdoc.
📊 RobotFramework TableLibrary
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.
🔍 Key Features
-
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.
Exception: Excel File Handling
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...
Installation
You can install the library using the following command:
pip install robotframework-tablelibrary
Example
File Format - CSV
# 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}
Missing values
Missing values are returned using pandas' default values by default. To return parsed missing values as Python None in list, dictionary, cell, row, and column results, enable the setting. This includes pandas missing-value types such as NaN, pd.NA, and NaT, as well as values recognized as missing by the active parser, such as N/A and NULL:
Tables.Configure Missing As None True
${content} = Tables.Read Table ${CURDIR}${/}testdata${/}example_01.csv
DataFrame results and the library's internal DataFrames are not changed by this setting.
File Format - Parquet
${content} = Tables.Read Table ${CURDIR}${/}testdata${/}example_05.parquet
${result} = BuiltIn.Evaluate "${content}[0][0]" == "_time"
BuiltIn.Should Be True ${result}
Create new empty table - don't save to file system
# 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}
Create new empty table - save to file system
# 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}
Contribution & Development
See Development.md for more information about contributing & developing this library.
License
robotframework-tablelibrary is distributed under the terms of the Apache License 2.0 license.
Metadata
Release files for robotframework-tablelibrary 0.3.1a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| robotframework_tablelibrary-0.3.1a1.tar.gz | 253.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robotframework_tablelibrary-0.3.1a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 289.2 kB
Release files / robotframework_tablelibrary-0.3.1a1.tar.gz
| Download URL | robotframework_tablelibrary-0.3.1a1.tar.gz |
|---|---|
| Size | 253.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6db33c1dacbbac9a5d3f9fb397861a1e26427a3bd4e43182feb6abcf85520e00
|
|
BLAKE2b-256 checksum How to use checksums |
d2a843ed3ba047f587d1b0854cd598267210f79d4516b8783ceb5fb3ab351c6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / robotframework_tablelibrary-0.3.1a1-py3-none-any.whl
| Download URL | robotframework_tablelibrary-0.3.1a1-py3-none-any.whl |
|---|---|
| Size | 36.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83fa795cfc21dd5e9a159bef18adf2816732081d128f9abb8135b29f567936a3
|
|
BLAKE2b-256 checksum How to use checksums |
0774c0970ab7dbba83e621628a835be0bd94ab6c34fcc92569928670e2319814
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|