Index: src/sans/perspectives/fitting/basepage.py
===================================================================
--- src/sans/perspectives/fitting/basepage.py	(revision eddb6eca9b813af3dd1f8c272f767fec8e5252fa)
+++ src/sans/perspectives/fitting/basepage.py	(revision 34dbaf435f0d0ef9233804cfba05de06edf85cbb)
@@ -22,4 +22,5 @@
 from sans.guiframe.dataFitting import Data1D
 from sans.guiframe.dataFitting import check_data_validity
+from sans.guiframe.gui_style import GUIFRAME_ID
 from sans.dataloader.data_info import Detector
 from sans.dataloader.data_info import Source
@@ -772,5 +773,13 @@
             event.Skip()
         # It seems MAC needs wxCallAfter
-        wx.CallAfter(self.get_copy)
+        if event.GetId() == GUIFRAME_ID.COPYEX_ID:
+            print "copy excel"
+            wx.CallAfter(self.get_copy_excel)
+        elif event.GetId() == GUIFRAME_ID.COPYLAT_ID:
+            print "copy latex"
+            wx.CallAfter(self.get_copy_latex)
+        else:
+            wx.CallAfter(self.get_copy)
+
         
     def on_paste(self, event):
@@ -3157,5 +3166,100 @@
         else:
             return False
-    
+
+    def get_copy_excel(self):
+        """
+        Get copy params to clipboard
+        """
+        content = self.get_copy_params_excel()
+        flag = self.set_clipboard(content)
+        self._copy_info(flag)
+        return flag
+
+    def get_copy_params_excel(self):
+        """
+        Get the string copies of the param names and values in the tap
+        """
+        content = ''
+
+        crlf = chr(13) + chr(10)
+        tab = chr(9)
+
+        # Do it if params exist
+        if  self.parameters != []:
+
+            for param in self.parameters:
+                content += param[1] #parameter name
+                content += tab
+                content += param[1]+"_err"
+                content += tab
+
+            content += crlf
+
+            #row of values and errors...
+            for param in self.parameters:
+                content += param[2].GetValue() #value
+                content +=tab
+                content += param[4].GetValue() #error
+                content +=tab
+
+            return content
+        else:
+            return False
+
+
+    def get_copy_latex(self):
+        """
+        Get copy params to clipboard
+        """
+        content = self.get_copy_params_latex()
+        flag = self.set_clipboard(content)
+        self._copy_info(flag)
+        return flag
+
+    def get_copy_params_latex(self):
+        """
+        Get the string copies of the param names and values in the tap
+        """
+        content = '\\begin{table}'
+        content += '\\begin{tabular}[h]'
+
+        crlf = chr(13) + chr(10)
+        tab = chr(9)
+
+        # Do it if params exist
+        if  self.parameters != []:
+
+            content += '{|'
+            for param in self.parameters:
+                content += 'l|l|'
+            content += '}\hline'
+            content += crlf
+
+            for index, param in enumerate(self.parameters):
+                content += param[1].replace('_','\_') #parameter name
+                content += ' & '
+                content += param[1].replace('_','\_')+"\_err"
+                if index < len(self.parameters)-1:
+                    content += ' & '
+            content += '\\\\ \\hline'
+            content += crlf
+
+            #row of values and errors...
+            for index, param in enumerate(self.parameters):
+                content += param[2].GetValue() #parameter value
+                content += ' & '
+                content += param[4].GetValue() #parameter error
+                if index < len(self.parameters)-1:
+                    content += ' & '
+            content += '\\\\ \\hline'
+            content += crlf
+
+            content += '\\end{tabular}'
+            content += '\\end{table}'
+            return content
+        else:
+            return False
+
+
     def set_clipboard(self, content=None):
         """
