Table of Contents

Data Manipulation Using Python In Microsoft Excel On Windows

In this post, i will talk about Excel plugin Xlwings. Xlwings enables writing Python scripts. Therefore Xlwings make it possible to do data manipulation using Python's data science packages.

Required:

  • Anaconda Installed
  • Python 3.5+ Installed

How to install xlwings

Bring up your Anaconda Powershell Prompt (anaconda3) in Windows. Then activate your Python virtual env. On my machine, i have created a virtual env python37.

Activate it using following command...

conda activate python37

Once you are in your python virtual env. Installing xlwings is very easy. Just run following command...

xlwings addin install 

You should see something like this message after the successful installation of xlwings...

The add-in is not installed.
"xlwings addin install" will install it at: C:\Users\john\AppData\Roaming\Microsoft\Excel\XLSTART\xlwings.xlam

Lets now invoke ipyhton, You can do it in any Python editor you want.

ipython

Lets now create a new excel file test.xlsx

import xlwings as xw
wb = xw.Book("C:/Users/john/Downloads/test.xlsx")

You will see excel spreadsheet opened with name test.xlsx.

Lets add following data to our test.xlsx sheet.

wb is a handler to our spreadsheet test.xlsx. We can list the number of sheets.

In [39]: wb.sheets
Out[39]: Sheets([<Sheet [test.xlsx]Sheet1>])

We can select the desired sheet using index. Lets select the first sheet.

 ws = wb.sheets[0]

How to use regular expressions in Microsoft Excel

Lets now do a simple data manipulation. We will remove the digit and column from in front of letters in excel cells and put the result in column B using Python regex.

import re
newvalues = []
for val in values:
	newvalues.append([re.sub(r'[0-9]+:','',val)])

Lets print the values in our newvalues.

print(newvalues)
Out[59]: [['A'], ['B'], ['B']]

Now lets paste these values in our spreadsheet column B using following Python command...

ws.range('C1:C3').value = newvalues

You should see following output...

WrapUp!

I hope now you know how to use Python to manipulate data inside Microsoft Excel.

Related Posts