用Python中的csv模块读入.xlsx

我正在尝试使用.xlsx格式的csv模块来读取excel文件,但是即使使用我指定的方言和编码来使用excel文件,我也没有任何运气。 下面,我展示了我尝试过的不同编码的不同尝试和错误结果。 如果任何人都可以将我指向正确的编码,语法或模块,我可以用Python读取.xlsx文件,我会很感激。

用下面的代码,我得到以下错误: _csv.Error: line contains NULL byte

 #!/usr/bin/python import sys, csv with open('filelocation.xlsx', "r+", encoding="Latin1") as inputFile: csvReader = csv.reader(inputFile, dialect='excel') for row in csvReader: print(row) 

使用下面的代码,我得到以下错误: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 16: invalid continuation byte

 #!/usr/bin/python import sys, csv with open('filelocation.xlsx', "r+", encoding="Latin1") as inputFile: csvReader = csv.reader(inputFile, dialect='excel') for row in csvReader: print(row) 

当我在encoding使用utf-16时,出现以下错误: UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 570-571: illegal UTF-16 surrogate

您不能使用Python的csv库来读取xlsx格式的文件。 您需要安装并使用不同的库。 例如,您可以使用xlrd ,如下所示:

 import xlrd workbook = xlrd.open_workbook("filelocation.xlsx") sheet = workbook.sheet_by_index(0) for rowx in range(sheet.nrows): cols = sheet.row_values(rowx) print(cols) 

这会将文件中的所有行显示为列的列表。 Python Excel网站提供了其他可能的例子。