-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
108 lines (69 loc) · 3.41 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
OpenPyxl is a Python library to read/write Excel 2007 xlsx/xlsm files.
It was born from lack of existing library to read/write natively from Python the new Open Office XML format.
All kudos to the PHPExcel team as openpyxl is a Python port of PHPExcel http://www.phpexcel.net/
== User List ==
Official user list can be found on http://groups.google.com/group/openpyxl-users
== Contribute ==
Any help will be greatly appreciated, there are just a few requirements to get your code checked in the public repository:
* Mercurial bundles are the preferred way of contributing code, compared to diffs written in a text file. Forks are encouraged, but don't forget to make a pull request if you want your code to be included :)
* long diffs posted in the body of a tracker request will not be looked at (more than 30 rows of non-syntax highlighted code is simply unreadable). Please attach your bundle files to the issue instead.
* every non-trivial change must come with at least a unit test (that tests the new behavior, obviously :p). There are plenty of examples in the /test directory if you lack know-how or inspiration.
== Easy Install ==
Releases are also packaged on PyPi, so all you have to type to get the latest version is:
$ easy_install openpyxl
== Features ==
** Supported data types **
* String (shared, Inline not currently supported)
* Integer
* Float
* Date
** Supported Excel features **
* Names ranges
* Number formats (built-in and custom formats)
** Handy features **
* Implicit conversion between Python types and Excel types:
* Dates
* Floats
* Percentages
* Optimized modes to read and write extremely large files
== Python 3.x support ==
Openpyxl supports python (even if some tests can fail on 2.4) from 2.4 to 2.6. If you use a more recent version of python, please use the hjunes fork you can find here : https://bitbucket.org/hjunes/openpyxl/.
== Full documentation==
With tutorial, examples, API documentation: http://packages.python.org/openpyxl/
== Quick Examples ==
=== Write a workbook ===
#!python
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter
from openpyxl.cell import get_column_letter
wb = Workbook()
dest_filename = r'empty_book.xlsx'
ws = wb.worksheets[0]
ws.title = "range names"
for col_idx in xrange(1, 40):
col = get_column_letter(col_idx)
for row in xrange(1, 600):
ws.cell('%s%s'%(col, row)).value = '%s%s' % (col, row)
ws = wb.create_sheet()
ws.title = 'Pi'
ws.cell('F5').value = 3.14
wb.save(filename = dest_filename)
=== Read an existing workbook ===
#!python
from openpyxl.reader.excel import load_workbook
wb = load_workbook(filename = r'empty_book.xlsx')
sheet_ranges = wb.get_sheet_by_name(name = 'range names')
print sheet_ranges.cell('D18').value # D18
=== Number Formats ===
#!python
import datetime
from openpyxl.workbook import Workbook
wb = Workbook()
ws = wb.worksheets[0]
# set date using a Python datetime
ws.cell('A1').value = datetime.datetime(2010, 7, 21)
print ws.cell('A1').style.number_format.format_code # returns 'yyyy-mm-dd'
# set percentage using a string followed by the percent sign
ws.cell('B1').value = '3.14%'
print ws.cell('B1').value # returns 0.031400000000000004
print ws.cell('B1').style.number_format.format_code # returns '0%'