2016-09-23 720 views
0

我使用openpyxl加载工作表并遇到问题Worksheet does not existget_sheet_by_name引发。openpyxl:工作表不存在(与字符集有关)

#!/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'区别在哪里?我如何解决它?

回答

2

好像你需要告诉蟒蛇你使用Unicode: 在你的文件的顶部添加此声明:

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

而且每持有字符字符串应该用U前缀:

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

我会加上你可以使用'#coding:utf-8',这样写起来不那么痛苦。 :) –

+0

你说得对,@ Tiger-222,它们是可以互换的。 :) –