Bị lỗi khi print giá trị của 01 cell trong file Excel 2010 bằng Python
Mình bị lỗi khi print giá trị của 01 cell trong file Excel 2010 bằng Python.
Ở đây mình sử dụng openpyxl là library để xử lý file excel. Đã mở đc file, lấy được sheet name và bây giờ muốn lấy giá trị của 1 cell (đầu vào cho trước) và modify đó.
Nhưng khi print giá trị cell thì bị lỗi do type(cell) là unicode. Bạn nào đã dùng qua lib này thì hướng dẫn mình với ?
from openpyxl import load_workbook
import warnings
warnings.filterwarnings(“ignore”)
wb = load_workbook(“E:VS Code - PythonTmpCR_template.xlsx”)
print type(wb)
print wb.get_sheet_names()
sheet = wb.get_sheet_by_name(“Sheet1”)
print type(sheet)
print sheet
print sheet.titleprint type(sheet[‘B6’].value)
print sheet[‘B6’].value.decode(‘unicode’)
Output lỗi :
<class ‘openpyxl.workbook.workbook.Workbook’>
[u’KBTD’, u’Nhap du lieu’]
class ‘openpyxl.worksheet.worksheet.Worksheet’
Worksheet “Sheet1”
Sheet
<type ‘unicode’>
Traceback (most recent call last):
File “e:VS Code - PythonTmp est.2.py”, line 19, in
print sheet[‘B6’].value
UnicodeEncodeError: ‘ascii’ codec can’t encode character u’xe3’ in position 3: ordinal not in range(128)
Edited : Bổ sung thêm cell B6 dùng chuỗi Unicode
Sáng nay mình run lại thì nó chạy OK, chả hiểu luôn.
Lỗi hiển thị tiếng việt thôi, sáng nay chắc ô bạn đọc nó không có ký tự tiếng việt nên không lỗi
Cám ơn bạn nhiều, mình đã xử đc. Chuyển qua decode thì OK. Nhưng có một thắc mắc là nếu đầu dòng code Python mình để :
-- coding: utf-8 --
thì tất cả các ký tự đặc biệt đều bị encode sang uft-8, mình ko muốn như thế thì phải làm sao ?