def writeAttributeRow(self, rowNr, attributes): colNr = 0 for cell in attributes: # QGIS2.0 does not have QVariants anymore, only for <2.0: if QGis.QGIS_VERSION_INT < 10900: cell = QVariant(cell) if cell.canConvert(QVariant.Int) and cell.toInt()[1]: cell = cell.toInt()[0] elif cell.canConvert(QVariant.Double) and cell.toDouble()[1]: cell = cell.toDouble()[0] else: cell = unicode(cell.toString()) # handle NULL values by writing 'NULL' if not cell: cell = '' else: cell = unicode(cell) try: cell = float(cell) except: pass self.ws.write(rowNr, colNr, cell) colNr = colNr + 1
def _variant_to_scalar(data): result, valid = QVariant.toDouble(data) if not valid: raise TypeError, "float_type.variant_to_scalar: QVariant expected" else: return result