QT tableWidget 导出数据完整代码
时间: 2023-10-05 15:08:15 浏览: 53
以下是一个将QTableWidget中的数据导出到CSV文件中的完整代码示例:
```python
import csv
from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QFileDialog
class MyTable(QTableWidget):
def __init__(self, parent=None):
super(MyTable, self).__init__(parent)
self.data = [['', '', ''], ['', '', ''], ['', '', '']]
self.init_ui()
def init_ui(self):
self.setWindowTitle("Table Widget Example")
self.resize(400, 250)
self.setRowCount(3)
self.setColumnCount(3)
self.setHorizontalHeaderLabels(['Column 1', 'Column 2', 'Column 3'])
for i in range(3):
for j in range(3):
item = QTableWidgetItem(self.data[i][j])
self.setItem(i, j, item)
def export_to_csv(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file_name, _ = QFileDialog.getSaveFileName(self, "Export to CSV", "", "CSV Files (*.csv)", options=options)
if file_name:
with open(file_name, 'w', newline='') as f:
writer = csv.writer(f)
for row in range(self.rowCount()):
row_data = []
for column in range(self.columnCount()):
item = self.item(row, column)
if item is not None:
row_data.append(item.text())
else:
row_data.append('')
writer.writerow(row_data)
if __name__ == '__main__':
import sys
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
table = MyTable()
table.show()
sys.exit(app.exec_())
```
在此示例中,我们创建了一个带有三行三列的QTableWidget,并将其数据初始化为一个包含三个空列表的列表。我们还定义了一个导出到CSV文件的方法,该方法使用QFileDialog打开一个保存对话框,然后使用csv模块将数据写入文件中。
要运行此代码,您需要安装PyQt5和csv模块。可以使用以下命令来安装:
```
pip install PyQt5
```
```
pip install csv
```
这是一个简单的示例,您可以根据需要进行修改和扩展。