Loads two columns from excel - cleans up the data - and makes a new list of unmatched values
Your code is actually pretty good!

But there are some small things I would change:


Don't use ws and ws2, instead just index them in the for loop. E.g. for col in wb['dirtyfile']['A'].
Rather than initalizeing j and incrementing it each loop you can instead use enumerate.
It's part of Python so it's well known, and improves clarity in your code.
This can change your cleansource loop to:

for j, i in enumerate(cleansource):
    cleansource[j] = str(i)

Rather than checking if an item is in another list, if it is do nothing otherwise add to another list.
Just check if the value is not in the list. E.g.

for i in dirtysource:
    if i not in cleansource:
        delta.append(i)



You also tagged this performance. And so there is one way you can improve the performance of this program.
Since cleansource is a list, if i in cleansource is a performance killer.
Instead you can use a set, this can allow you to perform if i in cleansource faster, as it's optimised to do so.
However I'd still keep your original cleansource, as sets are an unique unorganised collection of data.
Say you have the list ['a', 'b', 'c', 'd', 'a', 'b'] and you change it to a set you could get {'b', 'd', 'c', 'a'} back.
Either way you can change your code to the following for a performance increase:

clean_set = set(cleansource)
for i in dirtysource:
    if i not in clean_set:
        delta.append(i)