先上问题:
苦思不得其解,到最后用相对路径在终端发现了问题所在:
原因是作者现在使用的python 3.7现在并不支持打开.xls而只能打开.xlsx文件。但是现在大多数博客仍然没有更新自己有关的内容。
原代码:
import openpyxl book = openpyxl.load_workbook(‘mmp.xlsx’) sheet =book.active cells = sheet[‘A1’: ‘I9’] for c1, c2, c3, c4, c5, c6, c7,
c8, c9 in cells:
# format to have a nice and net output
print("{0:10} {1:10} {2:10} {3:10} {4:10} {5:10} {6:10} {7:10} {8:10}".format(
c1.value, c2.value, c3.value, c4.value, c5.value, c6.value, c7.value, c8.value, c9.value)
但是此类代码仍有一定的限制:
运行此代码的时候必须打开想要读取的Excel表格,但同时代码移植的时候不需要改动代码想要读取的单元格必须有值,必须非空(单元格中的值为0 不算)此外,在测试单元格中填入文本时代码也能正确运行。
import openpyxlsudokus = [[0] * 9 for _ in range(9)] # 每个为 sudokus[row][lis]打开工作薄
wb = openpyxl.load_workbook('E://python//edit//program//mmp.xlsx')选择表单
sh = wb['Sheet1']for i in range(0, 9): for j in range(0, 9): sudokus[i][j] = sh.cell((i + 1), (j + 1)).valuewb.close()print(sudokus)这种代码能够将读取到的数据存放在二维数组中。方便以后的使用。