[英]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.