2016-09-23 18 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,它們是可以互換的。 :) –