Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с выгрузкой в эксель / 15 сообщений из 15, страница 1 из 1
29.08.2006, 13:38
    #33949472
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Всем привет. Такая проблема:
VS 2003, есть на странице датагрид, поля которого генирируются автоматически в зависимости от выбранного параметра, то есть выполняются разные хранимые процедуры - какие-то быстрее, какие-то медленнее. После того, как датагрид наполняется, на странице появляется кнопка - Выгрузить в эксель, по нажатию на которую делается вот это:
Код: plaintext
1.
2.
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment; filename=" & Me.hdnRepName.Value & ".xls")
Response.BufferOutput = True

Причем, если датагрид заполнялся быстро какой-то простенькой процедуркой, то работает все ок, а если медленно около 30 секунд, то тогда при сохранении ексель файла на диск, получаем такую ошибку в виде месседжбокса:
"Cannot copy file: Cannot read from the source file or disk"
...
Рейтинг: 0 / 0
29.08.2006, 17:09
    #33950443
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Разумеется никто ни разу не сталкивался с таким
...
Рейтинг: 0 / 0
29.08.2006, 18:02
    #33950652
met-al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
При такой ошибке в Эксель выгружается больше 65535 строк?
...
Рейтинг: 0 / 0
29.08.2006, 18:09
    #33950674
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
met-alПри такой ошибке в Эксель выгружается больше 65535 строк?

да нет, в том-то и дело, что строк не так уж и много - около 50, просто процедура думает порядка полминуты.
...
Рейтинг: 0 / 0
29.08.2006, 18:09
    #33950676
met-al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
текст покажи
...
Рейтинг: 0 / 0
29.08.2006, 18:17
    #33950694
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
met-alтекст покажи
Текст процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Private Sub btnExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcel.Click
        EnableViewState = False

        Me.phFields.Visible = False
        Me.btnExcel.Visible = False
        Me.cmdOk.Visible = False
        Me.cmdPrepare.Visible = False
        Me.ddReport.Visible = False
        Me.dgReport.CssClass = ""
        Me.dgReport.HeaderStyle.CssClass = ""
        Me.dgReport.HeaderStyle.ForeColor = System.Drawing.Color.Black
        Me.dgReport.HeaderStyle.Font.Bold = True
        Me.dgReport.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
        Me.dgReport.BorderColor = System.Drawing.Color.Black
        Me.dgReport.BorderStyle = BorderStyle.Inset
        Me.dgReport.BorderWidth = System.Web.UI.WebControls.Unit.Pixel( 1 )
        Me.ltFields.Visible = False
        Me.Top.ShowLogo = False
        Me.lbTbReport.Visible = False
        Me.lbTbHead.Font.Bold = True
        Me.lbTbHead.Font.Size = System.Web.UI.WebControls.FontUnit.Point( 14 )
        Me.lbRepHead.Font.Bold = True
        Me.lbRepHead.Font.Size = System.Web.UI.WebControls.FontUnit.Point( 12 )

        Try
            Response.ContentType = "application/vnd.ms-excel"
            Response.AddHeader("Content-Disposition", "attachment; filename=" & Me.hdnRepName.Value & ".xls")
            Response.BufferOutput = True
        Catch ex As Exception
            Me.lbError.Text = ex.Message
        End Try

    End Sub
...
Рейтинг: 0 / 0
29.08.2006, 18:24
    #33950712
met-al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Это процедура в том виде в каком она работает у тебя или ты ее редактировал для форума?
...
Рейтинг: 0 / 0
29.08.2006, 18:26
    #33950722
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
убрал для форума закоментированный участок примерно из 10 строчек, это важно?
...
Рейтинг: 0 / 0
29.08.2006, 18:30
    #33950728
met-al
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Эта процедура наводит красоту и только в самом конце отправляет эксель файл клиенту.
Ты писал "...После того, как датагрид наполняется, на странице появляется кнопка - Выгрузить в эксель, по нажатию на которую..."
1. Покажи как ты формируешь эти самые данные, которые потом отправляешь клиенту

2. Тот Эксель-файл, который не хочет отправляться - ты его можешь на самом сервере открыть с помощью Экселя? Ошибку не дает?
...
Рейтинг: 0 / 0
29.08.2006, 18:37
    #33950742
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
1. Да просто подсовываю рекордсет и байндю
Код: plaintext
1.
2.
3.
4.
           
Dim DS As New DataSet
DS = objDB.OpenQueryDS(StoredProc, CommandType.StoredProcedure, ParamList)
Me.dgReport.DataSource = DS
Me.dgReport.DataBind()
2. Нажимаю кнопку Открыть - открывает программу эксель без какого-то листа внутри
...
Рейтинг: 0 / 0
29.08.2006, 18:41
    #33950749
Че
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
дык йопт, сохрани типо в сессии датасет - а при выгрузке в ексель - подсовывай его.
...
Рейтинг: 0 / 0
29.08.2006, 19:00
    #33950797
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Чедык йопт, сохрани типо в сессии датасет - а при выгрузке в ексель - подсовывай его.

а зачем, если у меня во вьюстейте хранится датагрид и есть уже сформированная таблица для выгрузки?
...
Рейтинг: 0 / 0
29.08.2006, 19:06
    #33950815
zenon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
у меня вот так работает нормально, быстро, только что проверил (правда не vb, а #):System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
dg1.DataSource = dt;
dg1.DataBind();

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=GiveFile.xls");
Response.ContentType = "application/vnd.xls";
dg1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();


dg1 тут DataGrid, связанный с таблицей DataTable (dt)
может чем-нить поможет.
...
Рейтинг: 0 / 0
29.08.2006, 20:00
    #33950891
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Спасибо, попробовал не помогло :(
Когда хранимка отрабатывает быстро при формировании датасета, тогда все ок, а когда медленно - как будто что-то отваливается. Хотя я даже пробовал датасет в сессию сохранять, потом оттуда забирал, байндил вновь датагрид, делал как вы говорили, но все равно та же ошибка. уже не знаю куда и копать :(

zenonу меня вот так работает нормально, быстро, только что проверил (правда не vb, а #):System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
dg1.DataSource = dt;
dg1.DataBind();

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=GiveFile.xls");
Response.ContentType = "application/vnd.xls";
dg1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();


dg1 тут DataGrid, связанный с таблицей DataTable (dt)
может чем-нить поможет.
...
Рейтинг: 0 / 0
30.08.2006, 15:41
    #33952862
dima_dima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с выгрузкой в эксель
Сегодня с утра сделал Server.Transfer по нажатию на кнопку формирования экселя - стал формировать его на другой странице, куда в сессии передаю датасет. С утра работало, сейчас вдруг опять та же ошибка. Что ж такое :(
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблемы с выгрузкой в эксель / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]