Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 12:54   #1
Object_File
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию Тормозит выгрузка в Excel

Добрый день ув. коллеги. Не так так давно знаком с ASP.NET, прошу строго не судить. Есть метод который формирует данные из DataTable в Excel файл. Код работает, файл формируется и сохраняется. Моя проблема в том что когда публикую проект в IIS сервер, формирование Excel файла становится оооочень длительным, иногда какие то 10-15 строк формирует минут 7-8. Про тысячные я молчу...
Подскажите что можно предпринять?

Привожу код формирование Excel файла:
Код:
 public string WriteToExcel(string OraCmd)  //Запись в Excel файл
        {
            string FileNameS = MapPath(path);
           
            Excel.Application excel_= new Excel.Application();
            try
            {
                excel_.Workbooks.Add(Type.Missing);
                excel_.Interactive = false;
                excel_.EnableEvents = false;

                xlSheet = (Excel.Worksheet)excel_.Sheets[1]; //указываем на страницу с которой будем работать, №1
                xlSheet.Name = "report"; //название страницы

                DataTable dt = GetData(OraCmd); //Присваиваем новую дату для записи данных
             
                string data = ""; //временная память

                for (i= 0; i< dt.Rows.Count - 1; i++)  //Запись по циклу, в страницу Excel
                {
                    for (j= 0; j< dt.Columns.Count; j++)
                    {
                        data = dt.Rows[i].ItemArray[j].ToString();
                        xlSheet.Cells[i, j] = data;   
                    }
                }
                xlSheetRange = xlSheet.UsedRange;
                xlSheetRange.Columns.AutoFit();
                xlSheetRange.Rows.AutoFit();

                excel_.ActiveWorkbook.SaveAs(FileNameS, 18);  //Сохраняем файл, указываем формайт файла 18 - Microsoft Excel 97-2003 
                excel_.Quit(); //Выход
            }
            catch (Exception ex)
            {
                LbMessage.Text = ex.Message;
            }
}

private DataTable GetData(string query) //Сбор данных в DataTable из Таблицы 
        {
            DataTable dt = new DataTable();
            try
            {
                OracleCommand cmd = new OracleCommand(query, connec);
                connec.Open();
                OracleDataAdapter da = new OracleDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                dt = ds.Tables[0];
            }
            catch (Exception ex)
            {
                LbMessage.Text = ex.Message;
            }
return dt;
}
Object_File вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка в Excel city32 Общие вопросы Delphi 2 18.10.2012 14:58
Выгрузка из БД в Excel fenetka Microsoft Office Excel 6 20.10.2011 08:06
Выгрузка данных из БД в Excel Rougez Microsoft Office Excel 3 17.06.2011 12:06
выгрузка в Excel файл lildare C# (си шарп) 0 22.04.2011 11:48
выгрузка в Excel по шаблону Swatch Microsoft Office Access 4 10.11.2010 23:46


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS