簡體   English   中英

PyQt打開文件對話框錯誤

[英]PyQt Open File Dialog error

因此,我有一個帶有QTableWidget的應用程序,想導入一個.xls文件:

def openfile(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '/home', ".xls(*.xls)")
        fname = open(filename)
        with fname:
            wb = xlrd.open_workbook(fname)
            wb.sheet_names()
            sh = wb.sheet_by_index(0)
            for col in sh.ncols:
                for i in col:
                    r = 0
                    c = 0
                    newItem = QtGui.QTableWidgetItem(i)
                    self.tableWidget.setItem(r, c, newItem)
                    r += 1
                r = 0
                c += 1

但是,我收到此錯誤: TypeError: coercing to Unicode: need string or buffer, file found

我做錯了什么?

更新:

def openfile(self):
            filename = unicode(QtGui.QFileDialog.getOpenFileName(self, 'Open File', '', ".xls(*.xls)"))
            wb = xlrd.open_workbook(filename)
            wb.sheet_names()
            sh = wb.sheet_by_index(0)
            self.first = sh.col_values(0)
            self.r = 0
            self.add()

    def add(self):
        for i in self.first:
             str(i)
             newItem = QtGui.QTableWidgetItem(i)
             self.tableWidget.setItem(self.r, 0, newItem)
             self.r += 1

工作正常,但我無法加載數字...僅字符串...很奇怪...

UPDATE2:

def add(self):
        for i in self.first:
             newItem = QtGui.QTableWidgetItem(str(i))
             self.tableWidget.setItem(self.r, 0, newItem)
             self.r += 1

但是它將所有數字顯示為浮點數...。

UPDATE3:

def add(self):
        for i in self.first:
             try:
                newItem = QtGui.QTableWidgetItem(str(int(i)))
             except ValueError:
                newItem = QtGui.QTableWidgetItem(str(i))    
             self.tableWidget.setItem(self.r, 0, newItem)
             self.r += 1

問題解決了...

xlrd.open_wookbook需要文件名(字符串),而不是fname (文件對象)。

嘗試:

        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '/home', ".xls(*.xls)")
        wb = xlrd.open_workbook(filename)

暫無
暫無

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

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