diff --git a/component/Gnumeric-embed.xml.in b/component/Gnumeric-embed.xml.in
index 3e1925c..054d30d 100644
--- a/component/Gnumeric-embed.xml.in
+++ b/component/Gnumeric-embed.xml.in
@@ -289,6 +289,7 @@
       <menu name="ExternalData" action="MenuExternalData">
         <menuitem action="DataImportText"/>
       </menu>
+      <menuitem action="DataExport"/>
     </menu>
     <menu name="Help" action="MenuHelp">
       <menuitem action="HelpDocs"/>
diff --git a/src/GNOME_Gnumeric-gtk.xml.in b/src/GNOME_Gnumeric-gtk.xml.in
index b9b3880..f3993b0 100644
--- a/src/GNOME_Gnumeric-gtk.xml.in
+++ b/src/GNOME_Gnumeric-gtk.xml.in
@@ -291,6 +291,7 @@
       <menu name="ExternalData" action="MenuExternalData">
         <menuitem action="DataImportText"/>
       </menu>
+      <menuitem action="DataExport"/>
     </menu>
     <menu name="Help" action="MenuHelp">
       <menuitem action="HelpDocs"/>
diff --git a/src/HILDON_Gnumeric-gtk.xml.in b/src/HILDON_Gnumeric-gtk.xml.in
index 7dda95d..60083af 100644
--- a/src/HILDON_Gnumeric-gtk.xml.in
+++ b/src/HILDON_Gnumeric-gtk.xml.in
@@ -283,6 +283,7 @@
       <menu name="ExternalData" action="MenuExternalData">
         <menuitem action="DataImportText"/>
       </menu>
+      <menuitem action="DataExport"/>
     </menu>
     <menu name="Help" action="MenuHelp">
 <!--
diff --git a/src/gui-file.c b/src/gui-file.c
index b31def6..2c996b0 100644
--- a/src/gui-file.c
+++ b/src/gui-file.c
@@ -408,7 +408,7 @@ extension_check_disabled (GOFileSaver *fs)
 }
 
 gboolean
-gui_file_save_as (WBCGtk *wbcg, WorkbookView *wb_view)
+gui_file_save_as (WBCGtk *wbcg, WorkbookView *wb_view, file_save_as_t type)
 {
 	GList *savers = NULL, *l;
 	GtkFileChooser *fsel;
@@ -419,17 +419,35 @@ gui_file_save_as (WBCGtk *wbcg, WorkbookView *wb_view)
 	char *uri;
 	Workbook *wb;
 	WBCGtk *wbcg2;
+#ifndef GNM_USE_HILDON
+	char const *title = (type == FILE_SAVE_AS_SAVE) ? _("Save the current workbook as") 
+		: _("Export the current workbook or sheet to");
+#endif
 
 	g_return_val_if_fail (wbcg != NULL, FALSE);
 
 	wb = wb_view_get_workbook (wb_view);
 	wbcg2 = wbcg_find_for_workbook (wb, wbcg, NULL, NULL);
 
-	for (l = go_get_file_savers (); l; l = l->next) {
-		if ((l->data == NULL) ||
-		    (go_file_saver_get_save_scope (GO_FILE_SAVER (l->data))
-		     != GO_FILE_SAVE_RANGE))
-			savers = g_list_prepend (savers, l->data);
+	for (l = go_get_file_savers (); l; l = l->next) 
+		switch (type) {
+		case FILE_SAVE_AS_SAVE:
+			if ((l->data == NULL) ||
+			    ((go_file_saver_get_save_scope (GO_FILE_SAVER (l->data))
+			      != GO_FILE_SAVE_RANGE) && 
+			     (go_file_saver_get_format_level (GO_FILE_SAVER (l->data))
+			      == GO_FILE_FL_AUTO)))
+				savers = g_list_prepend (savers, l->data);
+			break;
+		case FILE_SAVE_AS_EXPORT:
+		default:
+			if ((l->data == NULL) ||
+			    ((go_file_saver_get_save_scope (GO_FILE_SAVER (l->data))
+			      != GO_FILE_SAVE_RANGE) && 
+			     (go_file_saver_get_format_level (GO_FILE_SAVER (l->data)) 
+			      != GO_FILE_FL_AUTO)))
+				savers = g_list_prepend (savers, l->data);
+			break;
 	}
 	savers = g_list_sort (savers, file_saver_description_cmp);
 
@@ -440,7 +458,7 @@ gui_file_save_as (WBCGtk *wbcg, WorkbookView *wb_view)
 		(g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG,
 			       "action", GTK_FILE_CHOOSER_ACTION_SAVE,
 			       "local-only", FALSE,
-			       "title", _("Select a file"),
+			       "title", title,
 			       NULL));
 	gtk_dialog_add_buttons (GTK_DIALOG (fsel),
 				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -503,11 +521,16 @@ gui_file_save_as (WBCGtk *wbcg, WorkbookView *wb_view)
 	}
 
 	/* Set default file saver */
-	fs = wbcg2 ? wbcg2->current_saver : NULL;
-	if (!fs)
-		fs = workbook_get_file_saver (wb);
-	if (!fs || g_list_find (savers, fs) == NULL)
-		fs = go_file_saver_get_default ();
+	if (type == FILE_SAVE_AS_SAVE) {
+		fs = wbcg2 ? wbcg2->current_saver : NULL;
+		if (!fs)
+			fs = workbook_get_file_saver (wb);
+		if (!fs || g_list_find (savers, fs) == NULL)
+			fs = go_file_saver_get_default ();
+	} else {
+		/* We may want to remember the last exporter */
+		fs = go_file_saver_for_id ("Gnumeric_stf:stf_assistant");
+	}
 
 	gtk_combo_box_set_active (format_combo, g_list_index (savers, fs));
 
@@ -607,7 +630,7 @@ gui_file_save (WBCGtk *wbcg, WorkbookView *wb_view)
 	}
 
 	if (wb->file_format_level < GO_FILE_FL_AUTO)
-		return gui_file_save_as (wbcg, wb_view);
+		return gui_file_save_as (wbcg, wb_view, FILE_SAVE_AS_SAVE);
 	else {
 		gboolean ok;
 
diff --git a/src/gui-file.h b/src/gui-file.h
index 4e3bf87..5e8706e 100644
--- a/src/gui-file.h
+++ b/src/gui-file.h
@@ -6,7 +6,14 @@
 
 G_BEGIN_DECLS
 
-gboolean gui_file_save_as   (WBCGtk *wbcg, WorkbookView *wbv);
+typedef enum {
+	FILE_SAVE_AS_SAVE,
+	FILE_SAVE_AS_EXPORT,
+	FILE_SAVE_AS_EXPORT_RANGE
+} file_save_as_t;
+
+gboolean gui_file_save_as   (WBCGtk *wbcg, WorkbookView *wbv, 
+			     file_save_as_t type);
 gboolean gui_file_save      (WBCGtk *wbcg, WorkbookView *wbv);
 void     gui_file_open      (WBCGtk *wbcg,
 			     char const *default_format);
diff --git a/src/wbc-gtk-actions.c b/src/wbc-gtk-actions.c
index 43a53a6..493e4ae 100644
--- a/src/wbc-gtk-actions.c
+++ b/src/wbc-gtk-actions.c
@@ -101,7 +101,8 @@ static GNM_ACTION_DEF (cb_file_new)
 
 static GNM_ACTION_DEF (cb_file_open)	{ gui_file_open (wbcg, NULL); }
 static GNM_ACTION_DEF (cb_file_save)	{ gui_file_save (wbcg, wb_control_view (WORKBOOK_CONTROL (wbcg))); }
-static GNM_ACTION_DEF (cb_file_save_as)	{ gui_file_save_as (wbcg, wb_control_view (WORKBOOK_CONTROL (wbcg))); }
+static GNM_ACTION_DEF (cb_file_save_as)	{ gui_file_save_as (wbcg, wb_control_view (WORKBOOK_CONTROL (wbcg)), 
+							    FILE_SAVE_AS_SAVE); }
 
 #ifndef HAVE_MKDTEMP
 #include "gnm-random.h"
@@ -988,6 +989,8 @@ static GNM_ACTION_DEF (cb_data_table)		{ dialog_data_table (wbcg); }
 static GNM_ACTION_DEF (cb_data_slicer_create)	{ dialog_data_slicer (wbcg, TRUE); }
 static GNM_ACTION_DEF (cb_data_slicer_refresh)	{ cmd_slicer_refresh (WORKBOOK_CONTROL (wbcg)); }
 static GNM_ACTION_DEF (cb_data_slicer_edit)	{ dialog_data_slicer (wbcg, FALSE); }
+static GNM_ACTION_DEF (cb_data_export)	        { gui_file_save_as (wbcg, wb_control_view (WORKBOOK_CONTROL (wbcg)), 
+								    FILE_SAVE_AS_EXPORT); }
 
 static void
 hide_show_detail_real (WBCGtk *wbcg, gboolean is_cols, gboolean show)
@@ -2518,6 +2521,9 @@ static GtkActionEntry const actions[] = {
 	{ "DataTable", NULL, N_("_Table..."),
 		NULL, N_("Create a Data Table to evaluate a function with multiple inputs"),
 		G_CALLBACK (cb_data_table) },
+	{ "DataExport", NULL, N_("E_xport..."),
+		NULL, N_("Export the current workbook or sheet"),
+		G_CALLBACK (cb_data_export) },
 
 /* Data -> Fill */
 	{ "EditFillAutofill", NULL, N_("Auto_fill"),
