diff --git a/plugins/views_data_export_plugin_style_export.inc b/plugins/views_data_export_plugin_style_export.inc
index 8d7eed6..eeb2e75 100644
--- a/plugins/views_data_export_plugin_style_export.inc
+++ b/plugins/views_data_export_plugin_style_export.inc
@@ -36,6 +36,10 @@ class views_data_export_plugin_style_export extends views_plugin_style {
       'default' => FALSE,
       'translatable' => FALSE,
     );
+    $options['excel_type'] = array(
+      'default' => 'excel5',
+      'translatable' => FALSE,
+    );
     return $options;
   }
 
@@ -50,6 +54,16 @@ class views_data_export_plugin_style_export extends views_plugin_style {
    * None.
    */
   function options_form(&$form, &$form_state) {
+    if ('views_data_export_xls_phpexcel' == $this->plugin_name) {
+      $form['excel_type'] = array(
+        '#type' => 'radios',
+        '#title' => t('Excel type'),
+        '#default_value' => $this->options['excel_type'],
+        '#description' => t('Excel 5 is a legacy format from period 97-2004 (compatible with Feeds XLS for example). The newer format is Excel2007 (XSLX) in which content is in XML and zipped.'),
+        '#options' => array('excel5' => 'Excel 5 (XSL)', 'excel2007' => 'Excel 2007 (XSLX)')
+      );
+    }
+
     $form['attach_text'] = array(
       '#type' => 'textfield',
       '#title' => t('Attach text'),
diff --git a/theme/views_data_export.theme.inc b/theme/views_data_export.theme.inc
index 23fe27d..b7dc729 100644
--- a/theme/views_data_export.theme.inc
+++ b/theme/views_data_export.theme.inc
@@ -443,6 +443,47 @@ function template_preprocess_views_data_export_xml_body(&$vars) {
 }
 
 /**
+ * Theme function for XLS file using PHPExcel.
+ */
+function theme_views_data_export_xls_phpexcel_body(&$vars) {
+  _views_data_export_header_shared_preprocess($vars);
+  _views_data_export_body_shared_preprocess($vars);
+
+  foreach ($vars['themed_rows'] as $num => $row) {
+    foreach ($row as $field => $content) {
+        $content = strip_tags($content);
+        $vars['themed_rows'][$num][$field] = $content;
+      }
+  }
+
+  $complete_array = array_merge(array($vars['header']), $vars['themed_rows']);
+
+  // Loading PHPExcel library.
+  $phpexcelPath = libraries_get_path('PHPExcel');
+  include_once($phpexcelPath . '/Classes/PHPExcel.php');
+  $objPHPExcel = new PHPExcel();
+  $objPHPExcel->setActiveSheetIndex(0);
+  $objPHPExcel->getActiveSheet()->fromArray($complete_array);
+
+  $excel_type = !empty($vars['options']['excel_type']) ? $vars['options']['excel_type'] : 'excel5';
+  switch ($excel_type) {
+    case 'excel5':
+      $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
+      break;
+
+    case 'excel2007':
+      $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
+      $objWriter->setOffice2003Compatibility(true);
+      break;
+  }
+
+  ob_start();
+  $objWriter->save('php://output');
+  $excelOutput = ob_get_clean();
+  return $excelOutput;
+}
+
+/**
  * Returns a valid XML tag formed from the given input.
  *
  * @param $tag The string that should be made into a valid XML tag.
diff --git a/views_data_export.module b/views_data_export.module
index 92d9bf2..32784b7 100644
--- a/views_data_export.module
+++ b/views_data_export.module
@@ -48,6 +48,17 @@ function views_data_export_theme() {
     'file' => 'theme/views_data_export.theme.inc',
   );
 
+  // PHPExcel XLS theme.
+  $hooks['views_data_export_xls_phpexcel_body'] = array (
+    'variables' => array(
+      'view' => NULL,
+      'options' => NULL,
+      'rows' => NULL,
+      'title' => NULL,
+    ),
+    'file' => 'theme/views_data_export.theme.inc',
+  );
+
   $hooks['views_data_export_complete_page'] = array (
     'variables' => array(
       'file' => '',
diff --git a/views_data_export.views.inc b/views_data_export.views.inc
index c433c79..6772965 100644
--- a/views_data_export.views.inc
+++ b/views_data_export.views.inc
@@ -115,6 +115,19 @@ function views_data_export_views_plugins() {
         ),
         'additional themes base' => 'views_data_export_xls',
       ) + $style_defaults,
+      'views_data_export_xls_phpexcel' => array(
+        'title' => t('PHPExcel XLS(X) file'),
+        'help' => t('Display the view as an Excel file generated by PHPExcel.'),
+        'handler' => 'views_data_export_plugin_style_export',
+        'export headers' => array('Content-Type' => 'application/vnd.ms-excel'),
+        'export feed type' => 'xls',
+        'export feed text' => 'XLS',
+        'export feed file' => '%view.xls',
+        'export feed icon' => drupal_get_path('module', 'views_data_export') . '/images/xls.png',
+        'additional themes' => array(
+        ),
+        'additional themes base' => 'views_data_export_xls_phpexcel',
+      ) + $style_defaults,
       'views_data_export_xml' => array(
         'title' => t('XML file'),
         'help' => t('Display the view as a txt file.'),
