我正在尝试加载当前存在的工作表并导入下面显示的文本文件(逗号分隔值)截图,
Excel表格:
文字档案:
我正在使用下面显示的代码:
# importing necessary modules for performing the required operation
import glob
import csv
from openpyxl import load_workbook
import xlwt
#read the text file(s) using the CSV modules and read the dilimiters and quoutechar
for filename in glob.glob("E:\Scripting_Test\Phase1\*.txt"):
spamReader = csv.reader((open(filename, 'rb')), delimiter=',')
#read the excel file and using xlwt modules and set the active sheet
wb = load_workbook(filename=r"E:\Scripting_Test\SeqTem\Seq0001.xls")
ws = wb.worksheets(0)
#write the data that is in text file to excel file
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
ws.write(rowx, colx, value)
wb.save()
我收到以下错误消息:
UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xd0:无效的连续字节
还有一个问题:如何告诉python从excel表中的A3列开始导入文本数据?
答案 0 :(得分:3)
Unicode编码让我感到困惑,但是你不能强迫该值忽略无效字节:
value = unicode(value, errors='ignore')
对于更多有关unicode的阅读,这是一个很好的答案:unicode().decode('utf-8', 'ignore') raising UnicodeEncodeError
答案 1 :(得分:2)
openpyxl仅处理OOXML格式(xlsx / xlsm)。 请尝试使用Excel保存为xlsx文件格式而不是xls。
如果要在代码中将xls文件转换为xlsx。请尝试以下列表中的一个选项:
答案 2 :(得分:1)
嗨您确定没有具有UTF-8 BOM
的文档您可以尝试使用UTF-8 BOM codec。一般Windows + UTF + 8可能有点麻烦。虽然它显示的那个字符可能不是BOM。