from openpyxl import Workbook
wb = Workbook()
# grab the active worksheet
ws = wb.active
# Data can be assigned directly to cells
ws['A1'] = 42
# Rows can also be appended
ws.append([1, 2, 3])
# Python types will automatically be converted
import datetime
ws['A2'] = datetime.datetime.now()
# Save the file
wb.save("sample.xlsx")
instructions for contributing
Release notes: https://openpyxl.readthedocs.io/en/stable/changes.html
Support
This is an open source project, maintained by volunteers in their spare time.
This may well mean that particular features or functions that you would like
are missing. But things don’t have to stay that way. You can contribute the
project Development yourself or contract a developer for particular
features.
Professional support for openpyxl is available from
Clark Consulting & Research and
Adimian. Donations to the project to support further
development and maintenance are welcome.
Bug reports and feature requests should be submitted using the issue tracker. Please provide a full
traceback of any error you see and if possible a sample file. If for reasons
of confidentiality you are unable to make a file publicly available then
contact of one the developers.
The repository is being provided by Octobus and
Clever Cloud.
How to Contribute
Any help will be greatly appreciated, just follow those steps:
Please join the group and create a branch (https://foss.heptapod.net/openpyxl/openpyxl/) and
follow the Merge Request Start Guide.
for each independent feature, don’t try to fix all problems at the same
time, it’s easier for those who will review and merge your changes ;-)
Hack hack hack
Don’t forget to add unit tests for your changes! (YES, even if it’s a
one-liner, changes without tests will not be accepted.) There are plenty
of examples in the source if you lack know-how or inspiration.
If you added a whole new feature, or just improved something, you can
be proud of it, so add yourself to the AUTHORS file :-)
Let people know about the shiny thing you just implemented, update the
docs!
When it’s done, just issue a pull request (click on the large “pull
request” button on your repository) and wait for your code to be
reviewed, and, if you followed all theses steps, merged into the main
repository.
For further information see Development
Other ways to help
There are several ways to contribute, even if you can’t code (or can’t code well):
triaging bugs on the bug tracker: closing bugs that have already been
closed, are not relevant, cannot be reproduced, …
updating documentation in virtually every area: many large features have
been added (mainly about charts and images at the moment) but without any
documentation, it’s pretty hard to do anything with it
proposing compatibility fixes for different versions of Python: we support
3.6, 3.7, 3.8 and 3.9.