Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2021, 11:05   #1
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
Радость не сохраняется файл excel в загрузки

Доброго времени суток.
Код:
     MemoryStream ms = new MemoryStream();
          xlApp.ActiveWorkbook.SaveAs(ms);
Не сохраняется файл в загрузки. Сначала сохранялся, потом я из папки загрузки удалила файлы, которые успешно сохранились. Потом опять попробовала и больше не сохраняется Код не меняла сохранять начали в другую папку и не как эксель, а как MEMORYSTREAM (в Документы), в настройках браузера (загрузки). Помогите, пожалуйста разобраться. Не могу понять в чем дело. Работало же
Заранее, спасибо.

Последний раз редактировалось rita616; 18.10.2021 в 11:12.
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 12:23   #2
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Разобралась, не то спросила, запуталась
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 14:45   #3
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Подскажите, пожалуйста, как в загрузки файл эксель сохранить?
Код:
 protected void Button1_Click(object sender, EventArgs e)
        {
            var xlApp = new Excel.Application();
            var workbooks = xlApp.Workbooks;

            try
            {
                //добавляем книгу
                xlApp.Workbooks.Add(Type.Missing);

                //делаем временно неактивным документ
                xlApp.Interactive = false;
                xlApp.EnableEvents = false;

                //выбираем лист на котором будем работать (Лист 1)
                var xlSheet = (Excel.Worksheet)xlApp.Sheets[1];

                //Выгрузка данных
                System.Data.DataTable dt = GetData();
                System.Data.DataTable dt1 = GetData1();

                int collInd = 0;
                int rowInd = 0;
                int collInd1 = 0;
                int rowInd1 = 0;
                string data = "";
                string data1 = "";

                //называем колонки
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    data = dt.Columns[i].ColumnName.ToString();
                    xlSheet.Cells[1, i + 1] = data;

                    //выделяем первую строку
                    var xlSheetRange = xlSheet.get_Range("A1:Z1", Type.Missing);

                    //делаем полужирный текст и перенос слов
                    xlSheetRange.WrapText = true;
                    xlSheetRange.Font.Bold = true;
                }

                //заполняем строки
                for (rowInd = 0; rowInd < dt.Rows.Count; rowInd++)
                {
                    for (collInd = 0; collInd < dt.Columns.Count; collInd++)
                    {
                        data = dt.Rows[rowInd].ItemArray[collInd].ToString();
                        xlSheet.Cells[rowInd + 2, collInd + 1] = data;
                    }
                }

                var a = rowInd + 2;

                for (rowInd1 = 0; rowInd1 < dt1.Rows.Count; rowInd1++)
                {
                    for (collInd1 = 0; collInd1 < dt1.Columns.Count; collInd1++)
                    {
                        data1 = dt1.Rows[rowInd1].ItemArray[collInd1].ToString();
                        xlSheet.Cells[a, collInd1 + 6] = data1;
                    }
                }

            }
            catch (Exception)
            {
                //MessageBox.Show(ex.ToString());
            }
            finally
            {
                //Показываем ексель
                //xlApp.Visible = true;

                xlApp.Interactive = true;
                xlApp.ScreenUpdating = true;
                xlApp.UserControl = true;

                //Отсоединяемся от Excel
                //xlApp.Quit();

                Response.AppendHeader("content-disposition", "attachment;filename=ExportedHtml.xls");
                Response.Charset = "";
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.ContentType = "application/vnd.ms-Excel";
                Response.Write();
                this.EnableViewState = false;
                Response.End();

                //Отсоединяемся от Excel
                //xlApp.Workbooks.Close();
                // xlApp.Quit();


                if (workbooks != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
                xlApp.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);

            }


        }
    }
    }
Вот код, использовала Response, а получается сохраняется пустой файл.
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 16:22   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Где-то после вывода данных на лист надо прописать что-то типу
Код:
xlApp.ActiveWorkbook.Save
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 19.10.2021, 09:25   #5
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Aleksandr H., в документы сохраняется, и в загрузки пустой.
rita616 вне форума Ответить с цитированием
Старый 20.10.2021, 10:04   #6
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Подключила вместо Microsoft.Office.Interop.Excel ClosedXML. Вот код:
Код:
string pathDownload = @"%userprofile%\Downloads\Data.xlsx";
                xlApp.SaveAs(pathDownload);
Не работает выходит ошибка
System.IO.DirectoryNotFoundExceptio n: "Не удалось найти часть пути "C:\Program Files (x86)\IIS Express\%userprofile%\Downloads\Dat a.xlsx"."
Подскажите, пожалуйста, как в папку Загрузки сохранить любого пользователя
rita616 вне форума Ответить с цитированием
Старый 20.10.2021, 10:21   #7
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Если задавать жестко путь, тогда сохраняет.
rita616 вне форума Ответить с цитированием
Старый 20.10.2021, 10:28   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
string pathDownload = "C:\Program Files (x86)\IIS Express\" + Environment.Username + "\Downloads\Data.xlsx"

можно комбиновать с
Код:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.10.2021, 11:15   #9
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Aleksandr H., спасибо, сделала.
rita616 вне форума Ответить с цитированием
Старый 25.10.2021, 11:20   #10
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Опубликовала на сервере, не сохраняется теперь. В чем может быть проблема?
rita616 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изображение не сохраняется в файл fredwriter PHP 2 19.02.2015 10:59
Не сохраняется текст в файл Xo66um Общие вопросы Delphi 7 28.07.2013 16:36
Ошибка в коде Dev Cpp, не сохраняется в файл romanmorrex Общие вопросы C/C++ 2 23.05.2010 23:06
Не сохраняется таблица Excel ElenaA Общие вопросы Delphi 5 30.11.2009 12:45