Skip to main content

RobotFramework Table Library

Statistics

Latest Build Status -  Branch Latest Build Status - Default Branch PyPI - Version PyPI - Python Version PyPI Downloads - Total PyPI Downloads - Monthly

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
  • 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.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robotframework-tablelibrary 0.3.0
File Size Uploaded
robotframework_tablelibrary-0.3.0.tar.gz 253.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robotframework-tablelibrary 0.3.0
File Interpreter ABI Platform
robotframework_tablelibrary-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 289.1 kB

Release files / robotframework_tablelibrary-0.3.0.tar.gz

Download URL robotframework_tablelibrary-0.3.0.tar.gz
Size 253.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b49be289f4437bf33e6c8bb04dbfd46e68318487dc12d4f8fe0e69901287d887
BLAKE2b-256 checksum
How to use checksums
15ccf3eb316817148e2cb8118d018e37109a2359339a45727d67dc3d2cefe731
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.0-py3-none-any.whl

Download URL robotframework_tablelibrary-0.3.0-py3-none-any.whl
Size 35.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6e0b80423292224cd77d134515e5beeecfa979bbd5b07dbea9f66ea71b54c78f
BLAKE2b-256 checksum
How to use checksums
eb5c076f592be4d3e608500f19bfcda6ec45d7b688d6d4cea1c2cb5aee939cce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page