Python Excel Libraries (The 'excel' PyPI Package is Reserved)
The 'excel' package on PyPI (version 1.0.1) is a placeholder, reserved by Microsoft Corporation, and does not provide any functional library for interacting with Excel files. Python developers typically use other robust and actively maintained libraries such as `openpyxl` for reading and writing `.xlsx` files, `pandas` for data analysis and manipulation with Excel integration, `xlsxwriter` for creating new `.xlsx` files with extensive formatting, `xlwings` for automating Excel with Python, and `pyexcel` for a unified API across various Excel formats. This entry focuses on guiding users to `openpyxl` as the most common direct alternative for Excel file operations.
Common errors
-
ModuleNotFoundError: No module named 'excel'
cause You tried to import directly from a module named 'excel', which does not exist as a functional library after installing the PyPI placeholder package.fixInstall and import from a specific Excel library, e.g., `pip install openpyxl` then `from openpyxl import Workbook`. -
zipfile.BadZipFile: File is not a zip file
cause Attempting to open an `.xls` file with `openpyxl` (which expects `.xlsx` files).fixEnsure you are using `openpyxl` with `.xlsx` files. For `.xls` files, use `xlrd` (e.g., `import xlrd; workbook = xlrd.open_workbook('your_file.xls')`). -
TypeError: 'str' object cannot be interpreted as an integer
cause Often occurs when iterating over cells or trying to access them by string coordinates where an integer index is expected, or vice-versa, especially when mixing `openpyxl`'s 1-indexed string notation with 0-indexed integer loops.fixDouble-check cell access methods. Use `ws.cell(row=1, column=1)` for integer-based access or `ws['A1']` for string-based access, ensuring consistency.
Warnings
- breaking The `excel` package on PyPI is a reserved placeholder and does not contain any functional code. Attempting to install or import from it will not provide Excel manipulation capabilities.
- gotcha When working with `openpyxl`, remember that cell coordinates are 1-indexed (e.g., 'A1', 'B2') and sheets are accessed by name or by being the active sheet. New workbooks always start with one active sheet.
- gotcha If you're dealing with older `.xls` files (not `.xlsx`), `openpyxl` will not work. You'll need libraries like `xlrd` (for reading) or `xlwt` (for writing).
Install
-
pip install openpyxl -
pip install pandas openpyxl -
pip install xlsxwriter
Imports
- Workbook
import excel.Workbook
from openpyxl import Workbook
- load_workbook
from excel import load_workbook
from openpyxl import load_workbook
Quickstart
from openpyxl import Workbook
from openpyxl import load_workbook
# Create a new workbook
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"
ws['A1'] = 'Hello'
ws['B1'] = 'World!'
# Save the workbook
file_path = "example.xlsx"
wb.save(file_path)
print(f"Created {file_path}")
# Load an existing workbook
loaded_wb = load_workbook(file_path)
loaded_ws = loaded_wb.active
cell_a1_value = loaded_ws['A1'].value
print(f"Value from A1: {cell_a1_value}")