{"id":2501,"library":"fastexcel","title":"Fastexcel","description":"Fastexcel is a high-performance Python library for reading Excel files (.xlsx), implemented in Rust. It focuses on speed and memory efficiency, making it suitable for large datasets. The library is actively maintained with frequent minor releases, typically on a monthly cadence.","status":"active","version":"0.19.0","language":"en","source_language":"en","source_url":"https://github.com/ToucanToco/fastexcel","tags":["excel","reader","xlsx","performance","rust","dataframe","apache-arrow"],"install":[{"cmd":"pip install fastexcel","lang":"bash","label":"Install Fastexcel"}],"dependencies":[],"imports":[{"symbol":"Reader","correct":"from fastexcel import Reader"}],"quickstart":{"code":"import pandas as pd\nfrom fastexcel import Reader\nimport os\n\n# Create a dummy Excel file for demonstration\nfile_path = \"dummy_data.xlsx\"\ndata = {'ColumnA': [1, 2, 3], 'ColumnB': ['X', 'Y', 'Z']}\ndf = pd.DataFrame(data)\ndf.to_excel(file_path, index=False)\n\ntry:\n    # Initialize the reader with the Excel file path\n    reader = Reader(file_path)\n\n    # Load the first sheet into an Apache Arrow Table\n    table = reader.load_table(sheet_name=0)\n    print(\"\\nData from first sheet (Arrow Table):\")\n    print(table)\n\n    # To access sheet names, first call load_ws()\n    reader.load_ws() # Loads all worksheet metadata\n    if reader.ws_names:\n        first_sheet_name = reader.ws_names[0]\n        table_by_name = reader.load_table(sheet_name=first_sheet_name)\n        print(f\"\\nData from sheet '{first_sheet_name}' by name:\")\n        print(table_by_name)\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\nfinally:\n    # Clean up the dummy file\n    if os.path.exists(file_path):\n        os.remove(file_path)\n        print(f\"\\nCleaned up {file_path}\")","lang":"python","description":"This quickstart demonstrates how to read an Excel file using `fastexcel`. It first creates a dummy Excel file with pandas, then initializes `fastexcel.Reader` to load data into an Apache Arrow Table, showing how to read by sheet index and sheet name."},"warnings":[{"fix":"Ensure your Python environment is version 3.10 or higher before installing or upgrading fastexcel.","message":"Fastexcel has dropped support for older Python versions. v0.17.1 dropped Python 3.9, and v0.13.0 dropped Python 3.8. The current minimum required Python version is 3.10.","severity":"breaking","affected_versions":"<=0.16.x for Python 3.9; <=0.12.x for Python 3.8"},{"fix":"Use a positive integer for `schema_sample_rows` to infer the schema from actual rows, or omit it entirely to use the default behavior (which is usually sufficient).","message":"Setting `schema_sample_rows=0` when initializing `Reader` is no longer allowed and will raise an error.","severity":"gotcha","affected_versions":">=0.12.1"},{"fix":"Upgrade to `fastexcel` v0.17.1 or later to ensure that `#DIV/0!` cells are correctly interpreted as null values.","message":"Prior to v0.17.1, cells containing Excel error values like `#DIV/0!` might not have been consistently treated as null during type inference.","severity":"gotcha","affected_versions":"<0.17.1"},{"fix":"Upgrade to `fastexcel` v0.19.0 or later. If upgrading is not possible, ensure that `column_names` is also explicitly provided when using `use_columns` in older versions.","message":"In versions prior to v0.19.0, using `use_columns` with `load_table` when `column_names` was *not* specified could lead to incorrect behavior or errors.","severity":"gotcha","affected_versions":"<0.19.0"}],"env_vars":null,"last_verified":"2026-04-10T00:00:00.000Z","next_check":"2026-07-09T00:00:00.000Z"}