尝试完成退出代码-1073740791的过程,试图在python中读取Excel文件

时间:2019-05-20 21:24:13

标签: python excel pycharm exit

我已经编写了一个GUI,用于除其他外,读取excel数据并显示值。我为此使用xlrd。我已经尝试过for循环通过一定数量的行和列(我知道数据有多大),并且它应该如何工作。我正在使用PyCharm。

下一步应该是while循环,它可以读取任何数据,无论它有多大。因此,我想到了一个主意: -我正在检查是否有空白行或列 -如果彼此之间有10个以上的空白行或列,则程序应停止执行while循环

问题:我的setDatei()方法正在打开一个文件,并同时加载每个单元格的值。仅当我将此文件的最后一行/列设置为计数器时,它才适用于第一种情况。如果只有上面的1个数字,则程序将返回:“进程完成,退出代码-1073740791(0xC0000409)”。尝试使用while循环进行第二种情况时也会发生同样的情况。

我试图理解这一点: Process finished with exit code -1073741571 或者那个: How to overcome Stack Size issue with Visual Studio (running C codes with big array) 但是我想我不仅仅了解它。 它应该不仅可以在我的电脑上工作,而且可以在每台电脑上使用,因此不希望更改任何电脑设置。

案例1:有效

def setDatei(self): #Programmauswahl
    fileName, _ = QtWidgets.QFileDialog.getOpenFileName(None, "Waehle das Programm aus", "",
                                                        "Excel Files *.xlsx *.xls")  # Frage nach Datei
    if fileName:  # Wenn der Benutzer eine Datei gibt
        print(fileName)
        self.setLine.setText(fileName) # zeigt den Dateinamen in der Leiste oben links
        ####Öffnet die Datei und lädt die Werte
        workbook = xlrd.open_workbook(fileName)
        worksheet = workbook.sheet_by_index(0)
        # 16 Zeilen, 11 Spalten
        n = 0
        m = 0
        for i in range(0, 16):  # for-Schleife, um alle Zellen auszulesen und übertragen
            m = 0
            a = str(worksheet.cell(n, m).value)
            for i in range(0, 11):
                a = str(worksheet.cell(n, m).value)
                self.tableWidget.setItem(n, m, QtWidgets.QTableWidgetItem(a))
                m = m + 1
            n = n + 1

情况2:不起作用

def setDatei(self): #Programmauswahl
    fileName, _ = QtWidgets.QFileDialog.getOpenFileName(None, "Waehle das Programm aus", "",
                                                        "Excel Files *.xlsx *.xls")  # Frage nach Datei
    if fileName:  # Wenn der Benutzer eine Datei gibt
        print(fileName)
        self.setLine.setText(fileName) # zeigt den Dateinamen in der Leiste oben links
        ####Öffnet die Datei und lädt die Werte
        workbook = xlrd.open_workbook(fileName)
        worksheet = workbook.sheet_by_index(0)


        lineThreshold = 10
        columnThreshold = 10

        row = 0
        lineEmptyCounter = 0
        while True:
            col = 0
            columnEmptyCounter = 0
            lineEmpty = True


            while True:
                value = str(worksheet.cell(row, col).value)
                if value is None:
                    columnEmptyCounter += 1
                else:
                    lineEmpty = False
                    columnEmptyCounter = 0
                    self.tableWidget.setItem(row, col, QtWidgets.QTableWidgetItem(value))

                if columnEmptyCounter >= columnThreshold:
                    break
                else:
                    col = col + 1

            if lineEmpty:
                lineEmptyCounter += 1
            else:
                lineEmptyCounter = 0
            if lineEmptyCounter >= lineThreshold:
                break
            else:
                row = row+1

该过程以退出代码-1073740791(0xC0000409)完成。程序关闭而没有任何信息。我不知道从哪里开始。如果您需要更多详细信息,请告诉我。

0 个答案:

没有答案