0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
1 | |
Выгрузка данных в Excel из datagrid с allow paging22.10.2006, 18:35. Показов 6624. Ответов 18
Метки нет (Все метки)
По условиям задачи я должен дать возможность пользователю выгрузить полученный отчет в виде таблицы (datagrid) в файл Excel на локальной машине пользователя. Ранее я делал это с помощью Ole-автоматизации Set oExcel=CreateObject("Excel.Application") и.т.д.,с последующем добавлением адреса приложения в trusting.
Но теперь объемы данных выросли и уже отобразить такой объем данных на одной странице невозможно. видимо надо использовать paging. соответственно тогда мой метод работает только для текущей страницы(page).Как выгрузить данные в Excel со всех страниц datagrid? Или может быть есть способ выгрузить данные сразу из набора данных в файл xls на локальной системе пользователя? Использую:winxp sp2, vs2003 fcl 1.1 С уважением,
0
|
22.10.2006, 18:35 | |
Ответы с готовыми решениями:
18
Не работает Paging в DataGrid Выгрузка данных в Excel Выгрузка данных в Excel Выгрузка данных в Excel из Datatable |
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
23.10.2006, 20:37 [ТС] | 2 |
Так я вывожу grid:
[code] Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Если впервые загружена Dim a, dor_sokr, pred_sokr As String If Me.IsPostBack = False Then Try If Session.Item("dor") <> 0 Then 'делаем это если не сетевой уровень OdbcCommand1.CommandText = "SELECT NAME,SNAME FROM IC00.Dor WHERE DOR_KOD =" & Session.Item("dor") & "" CNN.Open() reader = OdbcCommand1.ExecuteReader() reader.Read() a = reader("NAME") dor_sokr = reader("SNAME") reader.Close() '''''' If Session.Item("dor") <> 0 And Session.Item("pred") <> 0 Then OdbcCommand2.CommandText = "SELECT SNAME FROM IM00.Pred WHERE PRED_ID =" & Session.Item("Pred") & "" reader2 = OdbcCommand2.ExecuteReader() reader2.Read() pred_sokr = RTrim(Replace(reader2("SNAME"), dor_sokr, "")) reader2.Close() End If ''''''''''''''''''''''''''''''' Label2.Text = "Дорога = '" & a & "', " & pred_sokr & " Отчетная дата = '" & Session.Item("o_date_now").Substring(0, 10) & "'" CNN.Close() End If '''''''''''''''''''''''''''''''' a = Session("page") DMPRM.CurrentPageIndex = Session("page") DMPRM.SelectedIndex = Session("item") Dim ds As DataSet = getdataset(PR) bindgrid(ds) Catch ex As Exception err3_msg = "ОШИБКА : Внимание! Произошла серьезная ошибка системы. Пожалуйста, свяжитесь с разработчиками и " _ & "передайте следующее описание ошибки: " & ex.Message Label2.Text = err3_msg Finally If (Not CNN Is Nothing) Then CNN.Close() End If End Try End If 'Переменная для поля сортировки PR = Me.ViewState("pr") End Sub Public Function getdataset(ByVal PR) As DataSet 'Отчетный месяц и год Dim mes_o, god_o, mes_t, god_t As String mes_o = Session.Item("o_date_now").Substring(5, 2) god_o = Session.Item("o_date_now").Substring(0, 4) Dim prm_SQL As String Dim str_per As String '? Dim i As Integer '? 'определяем уровень пользователя If Session.Item("dor") = 0 And Session.Item("pred") = 0 Then 'уровень сети Label2.Text = "Сетевой уровень" & " Отчетная дата = '" & Session.Item("o_date_now").Substring(0, 10) & "'" prm_SQL = "SELECT NAME_BALDERJ,ADRES,NAZNACH,S_OBSH,ETAZ_NADZEM,ETAZ_PODZEM," prm_SQL &= "PROT,BAL_STOIM,NUM_INV_KART,ID_DM " prm_SQL &= "FROM IM00.DM " prm_SQL &= IIf(PR = "NAME_BALDERJ", "ORDER BY NAME_BALDERJ ", _ IIf(PR = "NAZNACH", "ORDER BY NAZNACH ", _ IIf(PR = "S_OBSH", "ORDER BY S_OBSH ", _ IIf(PR = "PROT", "ORDER BY PROT ", _ IIf(PR = "NUM_INV_KART", "ORDER BY NUM_INV_KART ", _ IIf(PR = "REG_NOM", "ORDER B
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
25.10.2006, 18:39 [ТС] | 3 |
Или вопрос очень сложный, или спрашиваю не так...
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
25.10.2006, 20:24 | 4 |
Наверное дело не в сложности. Просто никто не знает что тут посоветовать.
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
26.10.2006, 18:24 [ТС] | 5 |
to Bazile:
Посоветуйте хоть что нибудь! Время поджимает, проект стоит. С уважением,
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
26.10.2006, 19:41 | 6 |
Извини, babken76, но чем тебе помочь я не знаю.
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
26.10.2006, 21:49 [ТС] | 7 |
Ты имеешь в виду, что не решал задачу выгрузки данных в MS Excel на локальную машину пользователя? Подскажите хотя бы, куда копать?
С уважением,
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.10.2006, 15:14 | 8 |
Возможно стоит рассмотреть альтернативы в виде CSV файла или искать специализированные компоненты для генерации xls файлов.
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
30.10.2006, 17:32 [ТС] | 9 |
А какая разница между csv и xls? все равно мне надо получить доступ к другим страницам грида, а как это сделать я не знаю. а уж в какой тип файла выгружать на машину пользователя это не суть. Может есть примеры работы с страницами датагрида?
С уважением,
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.10.2006, 17:48 | 10 |
Зачем тебе страницы DataGrid, когда у тебя есть DataSet с полным набором данных?
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.10.2006, 18:22 | 11 |
А csv формат более компактный и его гораздо легче сформировать.
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
30.10.2006, 18:35 [ТС] | 12 |
как я понимаю dataset это на сервере. а как мне его содержимое отправить клиенту на локальную машину?
С уважением,
0
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
30.10.2006, 18:38 | 13 |
Уважаемый, вы хоть немного разбираетесь в том, с чем работаете?
Не могу понять - неужели сложно сформировать текстовый файл и выслать его клиенту? Что может быть проще?
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
30.10.2006, 19:09 [ТС] | 14 |
to Alexey Spirin:
Вы имеете в виду сформировать на сервере файл excel или csv и дать клинту ссылку <a href="rep.xls скачать? Если бы Вы читали мой пост сначала, то наверняка бы догадались что этот вариант не подходит. Там все д.б. как в сказке. кнопку нажал, эксель увидил, обрадовался, че надо поправил и на печать. С уважением,
0
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
30.10.2006, 19:18 | 15 |
Зачем же ссылку. Сразу в выходном потоке и передавайте сгенерированный файл в качестве аттача. Кнопку ОТКРЫТЬ, думаю, не будет большой проблемой нажать.
Хотя вариант со ссыылкой, по-моему, ничем не хуже.
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.10.2006, 19:19 | 16 |
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
30.10.2006, 19:34 [ТС] | 17 |
to Alexey Spirin: суть в том, что пользователи и заказчик уже привыкли к такому сервису, все остальные отчеты в системе (около 15) уже сделаны подобным образом. И отказываться от этого они не будут.
to Bazile: Неплохой вариант. Можно ссылку на какой нибудь пример? С уважением,
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
30.10.2006, 19:44 | 18 |
0
|
0 / 0 / 1
Регистрация: 11.10.2010
Сообщений: 363
|
|
30.10.2006, 20:01 [ТС] | 19 |
Спасибо. Попробую.
0
|
30.10.2006, 20:01 | |
30.10.2006, 20:01 | |
Помогаю со студенческими работами здесь
19
Выгрузка данных с Firebird в Excel Выгрузка данных из Delphi в Excel Выгрузка данных из Excel в Ibexpert Выгрузка данных из Access в Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |