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 - Python\Tmp\CR_template.xlsx”)
print type(wb)
print wb.get_sheet_names()
sheet = wb.get_sheet_by_name(“Sheet1”)
print type(sheet)
print sheet
print sheet.title

print 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 - Python\Tmp\test.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

1 Like

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 ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?