#-*-Coding:utf-8-*-
__author__ = ' Administrator '
Import SYS, CSV
From PYQT4 import Qtgui, Qtcore
Class Window (Qtgui.qwidget):
def __init__ (self, Rows, columns):
Qtgui.qwidget.__init__ (self)
self.table = qtgui.qtablewidget (rows, columns, self)
For column in range (COLUMNS-1):
For row in range (rows-1):
item = Qtgui.qtablewidgetitem (' text%d '% row)
Self.table.setItem (row, column, item)
Self.buttonopen = Qtgui.qpushbutton (' Open ', self)
Self.buttonsave = Qtgui.qpushbutton (' Save ', self)
Self.buttonOpen.clicked.connect (Self.handleopen)
Self.buttonSave.clicked.connect (Self.handlesave)
Layout = Qtgui.qvboxlayout (self)
Layout.addwidget (self.table)
Layout.addwidget (Self.buttonopen)
Layout.addwidget (Self.buttonsave)
def handlesave (self):
Path = QtGui.QFileDialog.getSaveFileName (
Self, ' Save File ', ' ', ' CSV (*.csv) ')
If not Path.isempty ():
With open (Unicode (path), ' WB ') as stream:
writer = Csv.writer (stream)
For row in range (Self.table.rowCount ()):
RowData = []
For column in range (Self.table.columnCount ()):
item = Self.table.item (row, column)
If item is not None:
Rowdata.append (
Unicode (Item.text ()). Encode (' UTF8 '))
Else
Rowdata.append (")
Writer.writerow (RowData)
def handleopen (self):
Path = QtGui.QFileDialog.getOpenFileName (
Self, ' Open File ', ', ' CSV (*.csv) ')
If not Path.isempty ():
With open (Unicode (path), ' RB ') as stream:
Self.table.setRowCount (0)
Self.table.setColumnCount (0)
For RowData in Csv.reader (stream):
row = Self.table.rowCount ()
Self.table.insertRow (Row)
Self.table.setColumnCount (Len (RowData))
For column, data in Enumerate (RowData):
Item = Qtgui.qtablewidgetitem (Data.decode (' UTF8 '))
Self.table.setItem (row, column, item)
if __name__ = = ' __main__ ':
App = Qtgui.qapplication (SYS.ARGV)
window = window (10, 5)
Window.resize (640, 480)
Window.show ()
Sys.exit (App.exec_ ())
PYQT CVS Save