code: def _saveModel(self):
          
          delimiter = self._delimiterBox.currentSelected()
          header = self._headerCheckBox.isChecked() # column labels
          if self._filename is None:
              filename = self._filenameLineEdit.text()
          else:
              filename = self._filename
          ext = os.path.splitext(filename)[1].lower()
          index = False # row labels
  
          encodingIndex = self._encodingComboBox.currentIndex()
          encoding = self._encodingComboBox.itemText(encodingIndex)
          encoding = _calculateEncodingKey(encoding.lower())
  
          try:
              dataFrame = self._model.dataFrame()
          except AttributeError as err:
              raise AttributeError('No data loaded to export.')
          else:
              print("Identifying export type for {}".format(filename))
              try:
                  if ext in ['.txt','.csv']:
                      dataFrame.to_csv(filename, encoding=encoding, header=header, index=index, sep=delimiter)
                  elif ext == '.tsv':
                      sep = '\t'
                      dataFrame.to_csv(filename, encoding=encoding, header=header, index=index, sep=delimiter)
                  elif ext in ['.xlsx','.xls']:
                      dataFrame.to_excel(filename, encoding=encoding, header=header, index=index, sep=delimiter)
              except IOError as err:
                  raise IOError('No filename given')
              except UnicodeError as err:
                  raise UnicodeError('Could not encode all data. Choose a different encoding')
              except Exception:
                  raise
              self.signalExportFilenames.emit(self._model._filePath, filename)
docs: Reimplements _saveModel to utilize all of the
          Pandas export options based on file extension.
          :return: None