Traceback (most recent call last): File "C:\Users\Administrator\PycharmProjects\pythonProject5\lab.py", line 20, in <module> workbook = xlrd.open_workbook('小课时间安排.xlsx') File "D:\Anaconda\envs\python310\lib\site-packages\xlrd\__init__.py", line 170, in open_workbook raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supported
时间: 2023-07-21 10:19:42 浏览: 257
浅谈Python traceback的优雅处理
这个错误是因为 `xlrd` 库只支持旧版的 `.xls` 文件格式,不支持新版的 `.xlsx` 文件格式。如果你要读取 `.xlsx` 格式的 Excel 文件,可以使用 `openpyxl` 或 `pandas` 库来读取。你可以使用以下命令来安装 `openpyxl` 或 `pandas` 库:
```
pip install openpyxl # 安装 openpyxl 库
pip install pandas # 安装 pandas 库
```
然后使用以下代码来读取 "小课时间安排.xlsx" 文件中第5周和第10周的时间安排:
使用 `openpyxl` 库:
```python
import openpyxl
# 打开 Excel 文件
workbook = openpyxl.load_workbook('小课时间安排.xlsx')
# 选择第5周工作表
worksheet = workbook['第5周']
# 读取第5周时间安排
for row in range(2, worksheet.max_row + 1):
time = worksheet.cell(row=row, column=1).value
course = worksheet.cell(row=row, column=2).value
print(f'{time} - {course}')
# 选择第10周工作表
worksheet = workbook['第10周']
# 读取第10周时间安排
for row in range(2, worksheet.max_row + 1):
time = worksheet.cell(row=row, column=1).value
course = worksheet.cell(row=row, column=2).value
print(f'{time} - {course}')
```
使用 `pandas` 库:
```python
import pandas as pd
# 读取第5周时间安排
df = pd.read_excel('小课时间安排.xlsx', sheet_name='第5周')
for index, row in df.iterrows():
time = row['时间']
course = row['课程']
print(f'{time} - {course}')
# 读取第10周时间安排
df = pd.read_excel('小课时间安排.xlsx', sheet_name='第10周')
for index, row in df.iterrows():
time = row['时间']
course = row['课程']
print(f'{time} - {course}')
```
以上代码中,我们使用 `openpyxl` 或 `pandas` 库来打开 "小课时间安排.xlsx" 文件,然后选择第5周和第10周的工作表,最后读取每个工作表中的时间安排并输出。注意,使用 `openpyxl` 库时,我们使用 `worksheet.cell()` 函数来读取单元格的值,使用 `pandas` 库时,我们可以使用列名来获取每个单元格的值。
阅读全文