private void GenerateExcelSheet(Application excel, System.Data.DataTable table)
        {
            var worksheet = (Worksheet)excel.Worksheets.Add();

            try
            {
                worksheet.Name = table.TableName;

                for (int i = 1; i < table.Columns.Count + 1; ++i)
                {
                    worksheet.Cells[1, i] = table.Columns[i - 1].ColumnName;
                }

                int sheetRow = RowOffset;
                for (int row = RowOffset; row < table.Rows.Count + RowOffset; ++row)
                {
                    bool skip          = false;
                    int  languageIndex = LanguageEncodings.Count;
                    foreach (var language in LanguageEncodings.OrderByDescending(x => x.IsPrimary ? 0 : 1))
                    {
                        if (!language.IsPrimary &&
                            SkipLocalized &&
                            !string.IsNullOrWhiteSpace(table.Rows[row - RowOffset][language.Encoding].ToString()) &&
                            (string.IsNullOrWhiteSpace(SkipLocalizedIncludeFilterRegex) ||
                             !Regex.IsMatch(table.Rows[row - RowOffset][language.Encoding].ToString(), SkipLocalizedIncludeFilterRegex, RegexOptions.Multiline)
                            )
                            )
                        {
                            skip = true;
                            break;
                        }
                        worksheet.Cells[sheetRow, languageIndex + 1] = table.Rows[row - RowOffset][language.Encoding];
                        languageIndex -= 1;
                    }

                    if (!skip)
                    {
                        worksheet.Cells[sheetRow, 1] = (string)table.Rows[row - RowOffset][Key];
                        sheetRow++;
                    }
                }

                if (sheetRow == RowOffset && SkipEmptyResources)
                {
                    //((Worksheet)excel.ActiveWorkbook.Sheets[worksheet.Index]).Delete();
                    //excel.ActiveWorkbook.Save();
                    //excel.Worksheets.Delete();
                    //(excel.Worksheets[worksheet.Index] as Worksheet).Delete();
                    excel.DisplayAlerts = false;
                    worksheet.Delete();
                    excel.DisplayAlerts = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }