openpyxl: Worksheet does not exist(与字符集有关)

openpyxl: Worksheet does not exist (related to character sets)

我使用 openpyxl 加载工作表并遇到 get_sheet_by_name 提出的问题 Worksheet does not exist

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from openpyxl import load_workbook

file_workbook = 'JCR2015影响因子(所有期刊从高到低排序)+中科院分区.xlsx'
sheet_name = '2015年JCR'

wb = load_workbook(file_workbook, read_only=True)
print(wb.get_sheet_names())                 # [u'2015\u5e74JCR']

ws = wb.get_sheet_by_name(sheet_name)       # raise the error: KeyError: 'Worksheet 2015\xe5\xb9\xb4JCR does not exist.'

'2015年JCR'u'2015\u5e74JCR''2015\xe5\xb9\xb4JCR'有什么区别?我该如何解决?

您似乎需要告诉 python 您正在使用 unicode: 在文件顶部添加此声明:

# -*- coding: utf-8 -*-

并且每个包含字符的字符串都应该以 u:

为前缀
file_workbook = u'JCR2015影响因子(所有期刊从高到低排序)+中科院分区.xlsx'     
sheet_name = u'2015年JCR'

我的错误与你的错误类似,但情况不同如下:

我在一个 Excel 文件中有 5 个 sheet,我想将数据写入这 5 个 sheet。 sheet 之一是 OTC-BT。其他4个sheet都顺利通过了,唯独这个不能通过

wb = load_workbook(filename = new_recon_filename)

ws4 = wb['OTC-BT']
for row in ws4['A2:AA100000']:
  for cell in row:
    cell.value = None

我遇到如下错误:

Worksheet OTC-BT does not exist.

我删除了当前的OTC-BTsheet,复制了一个好的sheet并将复制的sheet重命名为OTC-BT。然后错误就消失了。