import openpyxl
wb = openpyxl.load_workbook('Docs\D1_01.xlsx')
wb
<openpyxl.workbook.workbook.Workbook at 0x86f5198>
wb.get_sheet_names()
['Sheet1', 'Sheet2', 'Sheet3']
sh2 = wb.get_sheet_by_name('Sheet2')
sh2
<Worksheet "Sheet2">
sh2.title
'Sheet2'
activeSheet = wb.active
activeSheet
<Worksheet "Sheet1">
sh1 = wb.get_sheet_by_name('Sheet1')
sh1['A1'].value
'DateTime'
sh1['A2'].value
datetime.datetime(2018, 1, 1, 0, 0)
sh1.cell(row=2,column=2).value
'Olly'
for i in range(1,5):
print(i, sh1.cell(row=i, column=2).value)
1 Name 2 Olly 3 Ollier 4 Oil
sh1.max_row
7
sh1.max_column
4
from openpyxl.utils import get_column_letter,column_index_from_string
get_column_letter(1)
'A'
get_column_letter(27)
'AA'
column_index_from_string('B')
2
column_index_from_string('AB')
28
sh1['A2':'D3']
((<Cell Sheet1.A2>, <Cell Sheet1.B2>, <Cell Sheet1.C2>, <Cell Sheet1.D2>), (<Cell Sheet1.A3>, <Cell Sheet1.B3>, <Cell Sheet1.C3>, <Cell Sheet1.D3>))
for i in sh1['A2':'D3']:
print(i)
(<Cell Sheet1.A2>, <Cell Sheet1.B2>, <Cell Sheet1.C2>, <Cell Sheet1.D2>) (<Cell Sheet1.A3>, <Cell Sheet1.B3>, <Cell Sheet1.C3>, <Cell Sheet1.D3>)
for i in sh1['A2':'D3']:
for k in i:
print(k)
<Cell Sheet1.A2> <Cell Sheet1.B2> <Cell Sheet1.C2> <Cell Sheet1.D2> <Cell Sheet1.A3> <Cell Sheet1.B3> <Cell Sheet1.C3> <Cell Sheet1.D3>
for i in sh1['A2':'D3']:
for k in i:
print(k.coordinate, '=', k.value)
print('★~~~~~~~ End of row ~~~~~~~★')
A2 = 2018-01-01 00:00:00 B2 = Olly C2 = 13 D2 = F ★~~~~~~~ End of row ~~~~~~~★ A3 = 2018-01-02 00:00:00 B3 = Ollier C3 = 14 D3 = F ★~~~~~~~ End of row ~~~~~~~★
sh1[2]
(<Cell Sheet1.A2>, <Cell Sheet1.B2>, <Cell Sheet1.C2>, <Cell Sheet1.D2>)
for i in sh1[2]:
print(i.value)
2018-01-01 00:00:00 Olly 13 F
sh1['B']
(<Cell Sheet1.B1>, <Cell Sheet1.B2>, <Cell Sheet1.B3>, <Cell Sheet1.B4>, <Cell Sheet1.B5>, <Cell Sheet1.B6>, <Cell Sheet1.B7>)
for i in sh1['B']:
print(i.value)
Name Olly Ollier Oil Oba Oma Ohya
sh1.title = 'I am Sheet 1'
sh1.title
'I am Sheet 1'
wb.save('Docs\D1_02.xlsx')
import openpyxl
wb = openpyxl.Workbook()
wb.get_sheet_names()
['Sheet']
wb.create_sheet()
wb.get_sheet_names()
['Sheet', 'Sheet1']
wb.create_sheet(index=0, title='Fist Sheet')
wb.get_sheet_names()
['Fist Sheet', 'Sheet', 'Sheet1']
wb.create_sheet(index=2, title='Middle Sheet')
wb.get_sheet_names()
['Fist Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']
wb.remove_sheet(wb.get_sheet_by_name('Sheet'))
wb.get_sheet_names()
['Fist Sheet', 'Middle Sheet', 'Sheet1']
wb.save('Docs/D1_03.xlsx')
wb = openpyxl.Workbook()
sh = wb.active
sh['A1'] = 'My First Value'
sh['A1'].value
'My First Value'
wb.save('Docs/D1_04.xlsx')
from openpyxl.styles import Font
wb = openpyxl.Workbook()
sh = wb.active
FontStyle = Font(name='Calibri', size=50, italic=True, bold=True)
sh['A1'].font = FontStyle
sh['A1'] = 'Hello Font'
wb.save('Docs/D1_05.xlsx')
wb = openpyxl.Workbook()
sh = wb.active
sh['A1'] = 10
sh['A2'] = 20
sh['A3'] = 30
sh['A4'] = '=SUM(A1:A3)'
wb.save('Docs/D1_06.xlsx')
wb = openpyxl.Workbook()
sh = wb.active
sh['A1'] = 'Tall Row'
sh['B2'] = 'Wide Column'
sh.row_dimensions[1].height = 50
sh.column_dimensions['B'].width = 30
wb.save('Docs/D1_07.xlsx')
wb = openpyxl.Workbook()
sh = wb.active
sh.merge_cells('A1:C3')
sh['A1'] = '9 Cells Merged Together!'
sh.merge_cells('C5:D5')
sh['C5'] = 'Two Merged Cells~'
wb.save('Docs/D1_08.xlsx')
wb = openpyxl.load_workbook('Docs/D1_08.xlsx')
sh = wb.active
sh.unmerge_cells('A1:C3')
sh.unmerge_cells('C5:D5')
wb.save('Docs/D1_08.xlsx')
| Freeze_panes | Freeze Rows & Columns |
|---|---|
| freeze_panes = 'A2' | Row 1 |
| freeze_panes = 'B1' | Column A |
| freeze_panes = 'C1' | Column A & B |
| freeze_panes = 'C2' | Row1 & Column A & Column B |
| freeze_panes = 'A1' | Non Freeze |
| freeze_panes = None | Non Freeze |
wb = openpyxl.load_workbook('Docs/D1_01.xlsx')
sh = wb.active
sh.freeze_panes = 'A2'
wb.save('Docs/D1_09.xlsx')
| Chart Type | Function |
|---|---|
| Bar Chart | openpyxl.chart.BarChart() |
| Line Chart | openpyxl.chart.LineChart() |
| Scatter Chart | openpyxl.chart.ScatterChart() |
| Pie Chart | openpyxl.chart.PieChart() |
wb = openpyxl.Workbook()
sh = wb.active
for i in range(1, 6):
sh['A' + str(i)] = i
ref = openpyxl.chart.Reference(sh,
min_col = 1,
min_row = 1,
max_col = 1,
max_row = 5)
ser = openpyxl.chart.Series(ref, title='Fisrt Series')
barChart = openpyxl.chart.BarChart()
barChart.title = 'My Bar Chart'
barChart.append(ser)
sh.add_chart(barChart, 'C2')
wb.save('Docs/D1_10.xlsx')
import openpyxl
from openpyxl.chart import BarChart, Reference, Series
wb = openpyxl.Workbook()
sh = wb.active
for i in range(1, 6):
sh['A' + str(i)] = i
sh['B' + str(i)] = i*2
ref1 = Reference(sh, min_col = 1, max_col = 1, min_row = 1, max_row = 5)
ser1 = Series(ref1, title='Fisrt Series')
ref2 = Reference(sh, min_col = 2, max_col = 2, min_row = 1, max_row = 5)
ser2 = Series(ref2, title='Second Series')
barChart = BarChart()
barChart.title = 'My Bar Chart'
barChart.append(ser1)
barChart.append(ser2)
sh.add_chart(barChart, 'C2')
wb.save('Docs/D1_11.xlsx')
import openpyxl
from openpyxl.chart import ScatterChart, Reference, Series
wb = openpyxl.Workbook()
sh = wb.active
rows = [['Day', 'Ollier', 'Orio', 'Olala'],
[1, 50, 30, 50],
[2, 30, 37, 67],
[3, 44, 40, 88],
[4, 40, 58, 99],
[5, 46, 80, 78],
[6, 60, 83, 100],]
for row in rows:
sh.append(row)
chart = ScatterChart()
chart.title = "My Scatter Chart"
chart.style = 12
chart.x_axis.title = 'Day'
chart.y_axis.title = 'Scores'
xvalues = Reference(sh, min_col=1, max_col=1, min_row=2, max_row=7)
for i in range(2, 5):
values = Reference(sh, min_col=i, max_col=i, min_row=1, max_row=7)
series = Series(values, xvalues, title_from_data=True)
chart.series.append(series)
sh.add_chart(chart, "F1")
wb.save('Docs/D1_12.xlsx')