之前可能多虑了,xlrd现在读xlsx文件似乎能认得准语言编码了,不会错。所以写了以下测试脚本,分别测试以utf-8去读和以gb2312去读(Excel文件另存为,“工具”-“Web选项”-“编码”默认是“简体中文GB2312)
有的说python为了处理类文本csv在Windows中文件头加BOM所以专门设计了格式utf-8-sig,大概在Excel文件中也用不着。
写了这个脚本读取第一页的首行,分别以utf-8和gb2312去读,我测试的结果竟然是一样的正确。所以读取不需要担心内容是什么编码了:
test-codec.py
import xlrd
print("检查Excel文件内容的编码是否为utf-8")
filename = input("请输入同目录xlsx文件的主文件名\n")
filename = filename+".xlsx"
exl = xlrd.open_workbook(filename)
sheet0 = exl.sheets()[0]
print("表单有", sheet0.nrows, "行")
headline = sheet0.row_values(0)
print("以utf8解码的首行为\n ", headline)
print()
xlrd.Book.encoding = "gb2312"
exl = xlrd.open_workbook(filename, encoding_override='gb2312')
headline = sheet0.row_values(0)
print("以gb2312解码的首行为\n ", headline)