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。然后错误就消失了。
我使用 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。然后错误就消失了。