如题,怎么把tablewidget控件中的数据导出为TXT文件并保存在程序目录下?
另外,保存的TXT文件必须是按照ASCII编码的,不能是UTF-8,每一行的每一个数据之间用逗号隔开,每一行的最后一个数据后不加逗号,请问一下怎么操作?。
数据格式如图:
可以参考这篇文章,实现你的需求
一文小入门pyQt5 —— 从零到一完成一个Excel文件处理程序_希sir的博客-CSDN博客_pyqt5打开excel并显示
试试。
# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import *
class MyTable(QWidget):
def __init__(self):
super(MyTable, self).__init__()
def init_ui(self):
'''
初始化控件
'''
self.setWindowTitle("QTableWidget例子")
self.resize(700, 400)
layout = QHBoxLayout()
self.tableWidget = QTableWidget(10, 4)
self.tableWidget.setHorizontalHeaderLabels(['序号', '账号', '姓名', '金额'])
dataset = [
['1', '611111', '张三', '20000'],
['2', '6222222', '李四', '3235'],
['3', '633333333', '王五', '3353'],
['4', '611111', '张三', '100000']
]
# 添加数据
for i in range(len(dataset)):
for j in range(len(dataset[0])):
newItem = QTableWidgetItem(dataset[i][j])
self.tableWidget.setItem(i, j, newItem)
layout.addWidget(self.tableWidget)
self.setLayout(layout)
def save_totxt(self):
'''
保存控件数据到txt文件
'''
col_num = self.tableWidget.columnCount() # 获取当前的列数
row_num = self.tableWidget.rowCount() # 获取当前的列数
f = open("d:/out.txt", "w")
for i in range(row_num):
line = ""
for j in range(col_num ):
item = self.tableWidget.item(i, j)
if item != None:
str = item.text()
print(str)
if j == 0:
line = str
else:
line = line + ", " + str
f.write(line + "\n")
f.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyTable()
win.init_ui() # 初始化控件
win.save_totxt() # 保存控件数据到txt文件
win.show()
sys.exit(app.exec_())