diff --git a/src/gui-clipboard.c b/src/gui-clipboard.c
index b98ed08..d6f4fe8 100644
--- a/src/gui-clipboard.c
+++ b/src/gui-clipboard.c
@@ -85,6 +85,7 @@ typedef struct {
 #define BIFF4_ATOM_NAME	"Biff4"
 #define BIFF3_ATOM_NAME	"Biff3"
 #define BIFF_ATOM_NAME	"Biff"
+#define XLSX_ATOM_NAME	"xlsx"
 
 #define HTML_ATOM_NAME_UNIX "text/html"
 #define HTML_ATOM_NAME_WINDOWS "HTML Format"
@@ -519,7 +520,10 @@ table_content_received (GtkClipboard *clipboard, GtkSelectionData *sel,
 		content = table_cellregion_read (wbc, "Gnumeric_Excel:excel",
 						 pt, gtk_selection_data_get_data (sel),
 						 gtk_selection_data_get_length (sel));
-	}
+	} else if (target == gdk_atom_intern ( XLSX_ATOM_NAME, FALSE))
+		content = table_cellregion_read (wbc, "Gnumeric_Excel:xlsx",
+						 pt, gtk_selection_data_get_data (sel),
+						 gtk_selection_data_get_length (sel));
 	if (content) {
 		/*
 		 * if the conversion from the X selection -> a cellregion
@@ -567,6 +571,7 @@ x_targets_received (GtkClipboard *clipboard, GdkAtom *targets,
 	static char const *table_fmts [] = {
 		GNUMERIC_ATOM_NAME,
 
+		XLSX_ATOM_NAME,
 		BIFF8_ATOM_NAME,
 		BIFF8_ATOM_NAME_CITRIX,
 		BIFF5_ATOM_NAME,
