# Simple usage

## Example: Creating a simple spreadsheet and bar chart

In this example we’re going to create a sheet from scratch and add some data and then plot it. We’ll also explore some limited cell style and formatting.

The data we’ll be entering on the sheet is below:

Species | Leaf Color | Height (cm)
--- | --- | ---
Maple | Red | 549
Oak | Green | 783
Pine | Green | 1204

To start, let’s load in openpyxl and create a new workbook. and get the active sheet. We’ll also enter our tree data.

    >>> from openpyxl import Workbook

    >>> wb = Workbook()
    >>> ws = wb.active
    >>> treeData = [["Type", "Leaf Color", "Height"], ["Maple", "Red", 549], ["Oak", "Green", 783], ["Pine", "Green", 1204]]

Next we’ll enter this data onto the worksheet. As this is a list of lists, we can simply use the `Worksheet.append()` function.

    >>> for row in treeData:
    ...     ws.append(row)

Now we should make our heading Bold to make it stand out a bit more, to do that we’ll need to create a `styles.Font` and apply it to all the cells in our header row.

    >>> from openpyxl.styles import Font

    >>> ft = Font(bold=True)
    >>> for row in ws["A1:C1"]:
    ...     for cell in row:
    ...         cell.font = ft

It’s time to make some charts. First, we’ll start by importing the appropriate packages from `openpyxl.chart` then define some basic attributes

    >>> from openpyxl.chart import BarChart, Series, Reference

    >>> chart = BarChart()
    >>> chart.type = "col"
    >>> chart.title = "Tree Height"
    >>> chart.y_axis.title = 'Height (cm)'
    >>> chart.x_axis.title = 'Tree Type'
    >>> chart.legend = None

That’s created the skeleton of what will be our bar chart. Now we need to add references to where the data is and pass that to the chart object

    >>> data = Reference(ws, min_col=3, min_row=2, max_row=4, max_col=3)
    >>> categories = Reference(ws, min_col=1, min_row=2, max_row=4, max_col=1)

    >>> chart.add_data(data)
    >>> chart.set_categories(categories)

Finally we can add it to the sheet.

    >>> ws.add_chart(chart, "E1")
    >>> wb.save("TreeData.xlsx")

And there you have it. If you open that doc now it should look something like this