Domanda

http: // scienceoss. com / lettura-Excel-files-da-python / comment-page-1 / # comment-1051

Dal link qui sopra, ho usato questo programma di utilità per leggere un file XLS. Se il file XLS contiene diversi caratteri delle lingue come il cinese o l'hindi, ma non emette correttamente. C'è una soluzione per questo?

Dopo Googling, ho trovato questo:

import xlrd

def upload_xls(dir,file,request):
    try:
        global msg
        global row_num
        row_num = []
        header_arr = []
        global file_path
        file_path = dir
        #reader = csv.reader(open(file), delimiter='#', quotechar='"')
        book = xlrd.open_workbook('dodgy.xls',encoding='cp1252')   ##To specify UTF8-encoding
        wb.sheet_names()
        sh =  wb.sheet_by_index(0)
        valid_xl_format = 0
        invalid_xl_format = 0
     except:
        print "Error

Ma c'è un errore nella linea book = open_workbook('dodgy.xls',encoding='cp1252'):

  

TypeError: open_workbook() got an unexpected keyword argument 'encoding'

È stato utile?

Soluzione

Secondo il XLRD modulo di documentazione , il parametro corretto è: encoding_override = "cp1252" e non codifica = "cp1252" .

Dal modo in cui si sta importando il modulo XLRD si dovrebbe essere chiamando la funzione come xlrd.open_workbook ma nel codice di esempio si utilizza direttamente la funzione, come se si fosse usato "dal import XLRD *".

Altri suggerimenti

[dis] claimer:. Sono l'autore di XLRD

  

Se il xls contiene diversi caratteri delle lingue come chine o   hindi.It non uscita i wordings.Is esatte lì un lavoro in giro per il   questo ..

L'argomento encoding_override è (come spiegato nella documentazione) utilizzata solo per i file vecchi (prodotti da Eccelle precedenti a Excel 97 (che è l'anno 1997)) e solo poi, quando il suo interno-registrato "tabella codici" è mancante o errato.

Nota: Vecchio file con i caratteri cinesi:. Override con 'CP1252' è garantito per sollevare un'eccezione

Nota: Vecchio file con (Devanagari?) Personaggi "Hindi": molto improbabile ... per quanto ne so non c'è mai stato un tabella codici ufficialmente supportato per qualsiasi degli script ISCII, e non ho sentito parlare di qualsiasi uno non ufficiale. Tutte le informazioni su questo argomento e / o file di esempio sarebbe molto benvenuto.

Excel 97 e versioni successive registrare tutti i dati di testo in (efficace) UTF-16. L'encoding_override viene ignorato se il file è una valida Excel-97 o versione successiva del file.

Qualunque sia la versione di Excel che ha prodotto il file, (come documentato) XLRD rendimenti Unicode stringhe. I suoi problemi sono molto più propensi a essere correlati a come si sta visualizzando o la conversione di queste stringhe Unicode.

Per ulteriore assistenza, modificare la tua domanda per mostrare esempi di uscita effettiva insieme alla "esatta formulazione".

C'è un modulo csv nella libreria standard, che gestisce Unicode in Python 3.1.

Attenzione:. in Python 2.x biblioteca csv non Maniglia unicode

C'è una domanda simile. La risposta è stata l'uscita stava causando problema, non XLRD.

risposta su come impostare lo script a UTF-8 -> https://stackoverflow.com/a/17628350/713

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top