this is the mini Excel. i tried to load to csv file, and i was successed to show the table.
So i think it's perfect. but it is not. PyCharm Showed me the IndexError -\> list index out of range
but i can't find this problem anywhere.
this is my code. and i made a QTableWidget
with PyQt6
Designer. the table name is self.mytable
.
def make_table(self, tableitems):
self.mytable.setRowCount(len(tableitems))
self.mytable.setColumnCount(len(tableitems[0]))
print(len(tableitems), len(tableitems[0]))
cnt = 0
try:
for i in range(len(tableitems)):
for j in tableitems:
self.mytable.setItem(cnt, i, QTableWidgetItem(j[i]))
cnt += 1
if cnt == len(tableitems):
cnt = 0
except Exception:
err_msg = traceback.format_exc()
print(err_msg)
def open_file(self):
filename = QFileDialog.getOpenFileName(self, "열기") #Open
table = QTableWidget()
tableitems = list()
if filename[0]:
f = open(filename[0], "r", encoding="utf-8")
with f:
datalines = csv.reader(f)
for dataline in datalines:
tableitems.append(dataline)
UI.make_table(self, tableitems)
self.infor.setText("파일 불러오기에 성공했어요!") # File has been Loaded
self.file_name = filename[0]
else:
self.infor.setText("파일 불러오기에 실패했어요!") # File hasn't been Loaded
and Traceback tell me about error's occur line.
self.mytable.setItem(cnt, i, QTableWidgetItem(j[i]))
~^^^
but i could't find what's the problem.
I also checked the csv file separately, but there was no problem.
Please let me know what should i do.
really thanks for musicamante, i found the answer that what should i do.
try:
for row, rowitems in enumerate(tableitems):
for column, item in enumerate(rowitems):
self.mytable.setItem(row, column, QTableWidgetItem(rowitems[column]))