xlwt
Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform.
Top Related Projects
A Python module for creating Excel XLSX files.
Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web.
Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files
Python for Windows (pywin32) Extensions
Quick Overview
xlwt is a library for writing data and formatting information to older Excel files (compatible with Excel 97-2003). It allows developers to create spreadsheets programmatically in Python, with support for custom styles, formulas, and various data types.
Pros
- Simple and straightforward API for creating Excel files
- Supports a wide range of formatting options and cell types
- Lightweight and has no external dependencies
- Compatible with older versions of Excel, which can be useful for legacy systems
Cons
- Limited to creating .xls files (Excel 97-2003 format), not the newer .xlsx format
- No longer actively maintained (last update was in 2016)
- Lacks support for some advanced Excel features
- Performance may be slower compared to more modern libraries when dealing with large datasets
Code Examples
- Creating a simple spreadsheet:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet 1')
sheet.write(0, 0, 'Hello')
sheet.write(0, 1, 'World')
workbook.save('example.xls')
- Adding formatting to cells:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet 1')
style = xlwt.XFStyle()
font = xlwt.Font()
font.bold = True
style.font = font
sheet.write(0, 0, 'Bold Text', style)
workbook.save('formatted.xls')
- Using formulas:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet 1')
sheet.write(0, 0, 10)
sheet.write(0, 1, 20)
sheet.write(0, 2, xlwt.Formula('A1+B1'))
workbook.save('formula.xls')
Getting Started
To get started with xlwt, first install it using pip:
pip install xlwt
Then, you can create a simple Excel file with the following code:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('My Sheet')
sheet.write(0, 0, 'Column 1')
sheet.write(0, 1, 'Column 2')
sheet.write(1, 0, 'Data 1')
sheet.write(1, 1, 'Data 2')
workbook.save('output.xls')
This will create an Excel file named 'output.xls' with two columns and two rows of data.
Competitor Comparisons
A Python module for creating Excel XLSX files.
Pros of XlsxWriter
- Supports the newer .xlsx file format, which is more widely used and has better compatibility
- Offers more advanced features like charts, images, and data validation
- Actively maintained with regular updates and improvements
Cons of XlsxWriter
- Slightly slower performance for large datasets compared to xlwt
- Requires more memory usage, especially for complex spreadsheets
- Steeper learning curve due to more extensive API and features
Code Comparison
XlsxWriter:
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'Hello, World!')
workbook.close()
xlwt:
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet 1')
worksheet.write(0, 0, 'Hello, World!')
workbook.save('example.xls')
Both libraries provide similar basic functionality for creating and writing to Excel files. However, XlsxWriter offers more advanced features and supports the newer .xlsx format, while xlwt is limited to the older .xls format. XlsxWriter's API is more extensive, allowing for greater customization and advanced spreadsheet creation, but it may require more code for complex tasks. xlwt's simpler API can be advantageous for basic spreadsheet operations.
Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
Pros of pandas
- Comprehensive data manipulation and analysis library
- Supports various file formats beyond Excel (CSV, JSON, SQL databases)
- Powerful data structures like DataFrame for efficient data handling
Cons of pandas
- Steeper learning curve due to extensive functionality
- Higher memory usage for large datasets
- Slower for simple Excel operations compared to xlwt
Code comparison
xlwt:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')
sheet.write(0, 0, 'Hello')
workbook.save('example.xls')
pandas:
import pandas as pd
df = pd.DataFrame({'Column1': ['Hello']})
df.to_excel('example.xlsx', index=False)
Summary
pandas is a more versatile and powerful library for data manipulation and analysis, supporting various file formats and offering advanced data structures. However, it has a steeper learning curve and may be overkill for simple Excel operations. xlwt is more lightweight and straightforward for basic Excel writing tasks but lacks the extensive functionality of pandas.
xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web.
Pros of xlwings
- Supports both reading and writing Excel files, while xlwt is write-only
- Allows interaction with existing Excel workbooks and applications
- Provides a more modern and feature-rich API for Excel automation
Cons of xlwings
- Requires Excel to be installed on the system (Windows or macOS)
- Has a steeper learning curve compared to xlwt's simpler API
- May be overkill for basic Excel file creation tasks
Code Comparison
xlwings:
import xlwings as xw
wb = xw.Book()
sheet = wb.sheets[0]
sheet.range('A1').value = 'Hello, xlwings!'
wb.save('example.xlsx')
xlwt:
import xlwt
wb = xlwt.Workbook()
sheet = wb.add_sheet('Sheet1')
sheet.write(0, 0, 'Hello, xlwt!')
wb.save('example.xls')
Both libraries allow for creating Excel files, but xlwings offers more advanced features and flexibility. xlwt is simpler and more lightweight, making it suitable for basic Excel file generation tasks. The choice between the two depends on the specific requirements of your project and the level of Excel integration needed.
Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files
Pros of pyexcel
- Supports multiple file formats (CSV, TSV, XLS, XLSX, ODS) beyond just Excel
- Provides a unified API for reading and writing various spreadsheet formats
- Offers data manipulation and transformation capabilities
Cons of pyexcel
- Larger library size and potentially slower performance for simple Excel tasks
- May have a steeper learning curve due to its more comprehensive feature set
- Less specialized for Excel-specific operations compared to xlwt
Code Comparison
xlwt example:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet 1')
sheet.write(0, 0, 'Hello, World!')
workbook.save('example.xls')
pyexcel example:
import pyexcel
data = [['Hello, World!']]
pyexcel.save_as(array=data, dest_file_name="example.xlsx")
Both libraries allow writing data to Excel files, but pyexcel's API is more concise and supports multiple formats. xlwt is more focused on Excel-specific features and formatting options, while pyexcel provides a more generalized approach to working with spreadsheet data across various formats.
Python for Windows (pywin32) Extensions
Pros of pywin32
- Broader functionality: Provides access to many Windows APIs, not just Excel
- More actively maintained with frequent updates
- Supports newer Excel features and file formats (XLSX)
Cons of pywin32
- Windows-specific, limiting cross-platform compatibility
- Steeper learning curve due to its extensive API coverage
- Requires Excel to be installed on the system
Code Comparison
xlwt example:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet 1')
sheet.write(0, 0, 'Hello, World!')
workbook.save('example.xls')
pywin32 example:
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
workbook = excel.Workbooks.Add()
sheet = workbook.ActiveSheet
sheet.Cells(1, 1).Value = 'Hello, World!'
workbook.SaveAs('example.xlsx')
excel.Quit()
Both libraries allow creating Excel files, but pywin32 interacts with Excel directly, while xlwt creates files without requiring Excel installation. xlwt is simpler for basic tasks, while pywin32 offers more advanced features at the cost of complexity and Windows dependency.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
|Travis|_ |Coveralls|_ |Docs|_ |PyPI|_
.. |Travis| image:: https://api.travis-ci.org/python-excel/xlwt.svg?branch=master .. _Travis: https://travis-ci.org/python-excel/xlwt
.. |Coveralls| image:: https://coveralls.io/repos/python-excel/xlwt/badge.svg?branch=master .. _Coveralls: https://coveralls.io/r/python-excel/xlwt?branch=master
.. |Docs| image:: https://readthedocs.org/projects/xlwt/badge/?version=latest .. _Docs: https://xlwt.readthedocs.io/en/latest/
.. |PyPI| image:: https://badge.fury.io/py/xlwt.svg .. _PyPI: https://badge.fury.io/py/xlwt
xlwt
This is a library for developers to use to generate spreadsheet files compatible with Microsoft Excel versions 95 to 2003.
The package itself is pure Python with no dependencies on modules or packages outside the standard Python distribution.
Please read this before using this package: https://groups.google.com/d/msg/python-excel/P6TjJgFVjMI/g8d0eWxTBQAJ
Installation
Do the following in your virtualenv::
pip install xlwt
Quick start
.. code-block:: python
import xlwt
from datetime import datetime
style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',
num_format_str='#,##0.00')
style1 = xlwt.easyxf(num_format_str='D-MMM-YY')
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
ws.write(0, 0, 1234.56, style0)
ws.write(1, 0, datetime.now(), style1)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('example.xls')
Documentation
Documentation can be found in the docs
directory of the xlwt package.
If these aren't sufficient, please consult the code in the
examples directory and the source code itself.
The latest documentation can also be found at: https://xlwt.readthedocs.io/en/latest/
Problems?
Try the following in this order:
-
Read the source
-
Ask a question on https://groups.google.com/group/python-excel/
Acknowledgements
xlwt is a fork of the pyExcelerator package, which was developed by Roman V. Kiseliov. This product includes software developed by Roman V. Kiseliov roman@kiseliov.ru.
xlwt uses ANTLR v 2.7.7 to generate its formula compiler.
Top Related Projects
A Python module for creating Excel XLSX files.
Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
xlwings is a Python library that makes it easy to call Python from Excel and vice versa. It works with Excel on Windows and macOS as well as with Google Sheets and Excel on the web.
Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files
Python for Windows (pywin32) Extensions
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot