diff --git a/field_collection_table.module b/field_collection_table.module
index 14fee07..162adf0 100644
--- a/field_collection_table.module
+++ b/field_collection_table.module
@@ -37,6 +37,8 @@ function field_collection_table_field_formatter_info() {
         'delete' => t('Delete'),
         'add' => t('Add'),
         'description' => TRUE,
+        'orientation' => 'columns',
+        'headers' => TRUE,
       ),
     ),
   );
@@ -123,6 +125,27 @@ function field_collection_table_field_formatter_view($entity_type, $entity, $fie
         );
       }
 
+      if (!$settings['headers']) $header = array();
+
+      // Flip table orientation if needed
+      if ($settings['orientation'] == 'rows' && count($rows)) {
+        $flippedrows = array();
+        for ($c=0;$c<count($rows[0]['data']);$c++) {
+          if ($settings['headers']) {
+            if (isset($header[$c])) {
+              $flippedrows[$c]['data'][0] = $header[$c];
+              $flippedrows[$c]['data'][0]['header'] = TRUE;
+              $flippedrows[$c]['data'][0]['scope'] = 'row';
+            } else $flippedrows[$c]['data'][0] = array();
+          }
+          for ($r=0;$r<count($rows);$r++) {
+            $flippedrows[$c]['data'][] = $rows[$r]['data'][$c];
+          }
+        }
+        $rows = $flippedrows;
+        $header = array();
+      }
+
       $element[0] = array(
         '#theme' => 'table',
         '#header' => $header,
@@ -145,14 +168,46 @@ function field_collection_table_field_formatter_view($entity_type, $entity, $fie
  * Implements hook_field_formatter_settings_form().
  */
 function field_collection_table_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
-  return field_collection_field_formatter_settings_form($field, $instance, $view_mode, $form, $form_state);
+  $display = $instance['display'][$view_mode];
+  $settings = $display['settings'];
+
+  // Get original Field Collection form
+  $form = field_collection_field_formatter_settings_form($field, $instance, $view_mode, $form, $form_state);
+
+  // Add new fields
+  $form['orientation'] = array(
+    '#type' => 'select',
+    '#title' => t('Format fields as…'),
+    '#options' => array('columns' => t('Columns'), 'rows' => t('Rows')),
+    '#default_value' => $settings['orientation'],
+  );
+  $form['headers'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show table headers.'),
+    '#default_value' => $settings['headers'],
+  );
+
+  return $form;
 }
 
 /**
  * Implements hook_field_formatter_settings_summary().
  */
 function field_collection_table_field_formatter_settings_summary($field, $instance, $view_mode) {
-  return field_collection_field_formatter_settings_summary($field, $instance, $view_mode);
+  $display = $instance['display'][$view_mode];
+  $settings = $display['settings'];
+
+  // Get original Field Collection summary
+  $summary = field_collection_field_formatter_settings_summary($field, $instance, $view_mode);
+
+  // Add new info
+  $summary.= '<br/>';
+  $orientations = array('columns' => t('Columns'), 'rows' => t('Rows'));
+  $summary.= t('Format fields as <strong>!orientation</strong>.', array('!orientation' => $orientations[$settings['orientation']]));
+  $summary.= '<br/>';
+  $summary.= ($settings['headers']) ? t('Show table headers') : t('Hide table headers');
+
+  return $summary;
 }
 
 /**
@@ -264,4 +319,4 @@ function field_collection_table_entity_view($entity, $type, $view_mode, $langcod
     $entity->content['#theme'] = 'field_collection_table_multiple_value_field';
     $entity->content['#pre_render'][] = 'field_collection_table_pre_render_field';
   }
-}
+}
\ No newline at end of file
