public function exportTable(DataContainer $dc)
 {
     $objConfig = $this->Database->prepare("SELECT * FROM tl_dataexchange_config WHERE id=?")->limit(1)->execute($this->Input->get('return') == '' ? $dc->id : $this->Input->get('id'));
     if ($objConfig->numRows < 1) {
         $this->redirect('contao/main.php?act=error');
     }
     $this->import('String');
     $this->loadDataContainer($objConfig->tableName);
     $objCSV = new CsvWriter();
     $arrData = array();
     $arrResult = $this->getFieldResults($objConfig);
     foreach ($arrResult as $arrRow) {
         $arrFieldData = array();
         foreach ($arrRow as $arrField) {
             if ($arrField['dcaField'] != '') {
                 $strValue = $this->formatValue($objConfig->tableName, $arrField['dcaField'], $arrField['value']);
             } else {
                 $strValue = $arrField['value'];
             }
             // Decode special entities (e.g. brackets), Contao automatically encodes them in the database
             $arrFieldData[] = $this->String->decodeEntities($strValue);
         }
         $arrData[] = $arrFieldData;
     }
     // Add header fields
     if ($objConfig->includeHeader) {
         $this->loadLanguageFile($objConfig->tableName);
         $arrHeader = array();
         foreach ($arrResult[0] as $id => $arrField) {
             if ($arrField['label'] != '') {
                 $arrHeader[] = $arrField['label'];
             } elseif ($arrField['dcaField'] != '') {
                 $arrHeader[] = $this->formatLabel($objConfig->tableName, $arrField['dcaField']);
             } else {
                 $arrHeader[] = $id;
             }
         }
         $objCSV->headerFields = $arrHeader;
     }
     $objCSV->seperator = $objConfig->exportCSVSeparator == "tab" ? "\t" : $objConfig->exportCSVSeparator;
     $objCSV->excel = $objConfig->exportCSVExcel;
     $objCSV->content = $arrData;
     if ($objConfig->exportToFile) {
         $strStoreDir = $objConfig->storeDir;
         if ($strStoreDir == '') {
             $strStoreDir = $GLOBALS['TL_CONFIG']['uploadPath'];
         }
         $objCSV->saveToFile(sprintf('%s/%s%s.csv', $strStoreDir, $this->replaceInsertTags($objConfig->prependString), $objConfig->tableName));
     } else {
         $objCSV->saveToBrowser();
     }
     if ($this->Input->get('return')) {
         $this->redirect('contao/main.php?do=' . $this->Input->get('return'));
     } else {
         $this->redirect('contao/main.php?do=dataexchange_config');
     }
 }