Some characters cause corrupted xlsx file. I'm not sure what characters will cause the corrupted file.(I'm sure at least \x11 will.)
So I did a replace before set the value.
for i in xrange(0, 32):
ok_str = ok_str.replace(chr(i), '?')
I'm thinking it will be better if the library do this.