簡體   English   中英

從excel文件python3讀取漢字

[英]read Chinese character from excel file python3

我有一個包含兩列的Excel文件,第一列是中文,第二列只是一個鏈接。 我嘗試了兩種在這里找到的方法。 但是它不起作用,並且我無法在控制台中打印該值,我將設置(pycharm)中的編碼變量更改為U8,但仍然不起作用。 我使用了Pandas和xlrd庫,但對於其他發布者卻沒有起作用。 這是我當前的代碼:

from xlrd import open_workbook
class Arm(object):
    def __init__(self, id, dsp_name):
        self.id = id
        self.dsp_name = dsp_name

    def __str__(self):
        return("Arm object:\n"
               "  Arm_id = {0}\n"
               "  DSPName = {1}\n"
               .format(self.id, self.dsp_name))

if __name__ == '__main__':

    wb = open_workbook('test.xls')
    for sheet in wb.sheets():
        print(sheet)
        number_of_rows = sheet.nrows
        number_of_columns = sheet.ncols

        items = []

        rows = []
        for row in range(1, number_of_rows):
            values = []
            for col in range(number_of_columns):
                value = str(sheet.cell(row, col).value)
                for a in value:
                    print('\n'.join([a]))
                values.append(value)

                print(value)
    for item in items:
        print (item)
        print("Accessing one single value (eg. DSPName): {0}".format(item.dsp_name))
        print

顯然它沒有用,我只是放棄了而已。 文件: http : //www59.zippyshare.com/v/UxITFjis/file.html

這與編碼無關,您無法訪問正確的行。

上線24
for row in range(1, number_of_rows):

為什么要從1而不是0開始。
嘗試for row in range(number_of_rows):

好吧,我的問題實際上不是在閱讀漢字! 我的問題是在控制台中打印。 我以為打印編碼器可以正常工作,但我只是沒讀過字符,但是這段代碼可以正常工作:

from xlrd import open_workbook

wb = open_workbook('test.xls')
messages = []
links = []

for sheet in wb.sheets():
    number_of_rows = sheet.nrows
    number_of_columns = sheet.ncols
    for row in range(1, number_of_rows):
        i = 0
        for col in range(number_of_columns):
            value  = (sheet.cell(row,col).value).encode('gbk')
            if i ==0:
                messages.append(value)
            else:
                links.append(value)
            i+=1



print(links)

要檢查它,我將第一個結果粘貼到selenium驅動程序中(因為無論如何我都會使用它)

element = driver.find_element_by_class_name('email').send_keys(str(messages[0],'gbk'))

它就像一個煙囪!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM