Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
5 / 5 / 0
Регистрация: 01.04.2012
Сообщений: 213
Записей в блоге: 1
1

Выгрузка данных в Excel на стороне клиента

04.04.2012, 16:29. Просмотров 4213. Ответов 7
Метки нет (Все метки)


Здравствуйте.
Подскажите пожалуйста как выгружать данные из бд в excel таким образом, чтобы документ excel создавался на машине клиента, а не на стороне сервера как предлагалось ранее. На сервере нет возможности подключить ссылку на Microsoft.Office.Interop.Excel. Потому хочу делать всё на стороне клиента.
Те, человек нажал на кнопку, у него в определённом месте на жёстком диске создался новый документ, в который передаются данные из БД.
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2012, 16:29
Ответы с готовыми решениями:

Выгрузка данных в Excel
Здравствуйте! Помогите реализовать выгрузку данных в Excel. Задумка такая. Есть форма, на ней DGV...

Выгрузка данных в Excel из Datatable
Долго мучался, в итоге имею следующее: ошибки и код. Подскажи пожалуйста в чем ошибки, почему код...

Хранение набора результатов запроса на стороне клиента
Как правильно реализовать сабж? В ADODB у RecordSet было свойство CursorLocation, задав которому...

Как корректно закрыть соединение TCP на стороне клиента
Код следующий: TcpClient client = new TcpClient(server, port); Byte data ; ...

7
407 / 258 / 25
Регистрация: 03.10.2011
Сообщений: 1,074
04.04.2012, 23:41 2
Рассмотрите как вариант:
C#
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
            Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
            Workbook ExcelWorkBook;
            Worksheet ExcelWorkSheet;
            //Книга.
            ExcelWorkBook = ExcelApp.Workbooks.Add(System.Reflection.Missing.Value);
            //Таблица
            ExcelWorkSheet = (Worksheet)ExcelWorkBook.Worksheets.get_Item(1);
 
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (dataGridView1.Rows[i].Cells[j].GetType().Name == "DataGridViewComboBoxCell")
                    {
                        DataGridViewComboBoxCell dgvcbc = new DataGridViewComboBoxCell();
                        dgvcbc = (DataGridViewComboBoxCell)dataGridView1.Rows[i].Cells[j];
                        ExcelApp.Cells[i + 1, j + 1] = dgvcbc.EditedFormattedValue;
                    }
                    else
                    {
                        ExcelApp.Cells[i + 1, j + 1] = dataGridView1.Rows[i].Cells[j].Value;
                    }
                }
            }
            //Вызываем нашу созданную эксельку.
            ExcelApp.Visible = true;
            ExcelApp.UserControl = true;
1
5 / 5 / 0
Регистрация: 01.04.2012
Сообщений: 213
Записей в блоге: 1
04.04.2012, 23:59  [ТС] 3
Так ведь для этого мне надо на подключить ссылку на объект Excel, в проекте. А сервер на эту ссылку ругается потому что у него нет таких библиотек. Вы привели пример, когда используется всё-же эксель на стороне сервера ?
0
1054 / 861 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
05.04.2012, 14:10 4
эти библиотеки появляются с установкой офиса. скорее всего на вашем сервере не уставлен он.
0
5 / 5 / 0
Регистрация: 01.04.2012
Сообщений: 213
Записей в блоге: 1
05.04.2012, 15:44  [ТС] 5
Конечно нет. Он там и не будет установлен. Я ведь и спросил, как сделать это на стороне клиента ??? чтобы не ставить офис на сервере
0
6228 / 3529 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
05.04.2012, 15:59 6
Ну так _katon_, привел же пример.
0
122 / 104 / 7
Регистрация: 14.02.2010
Сообщений: 263
05.04.2012, 16:05 7
Цитата Сообщение от SashaS Посмотреть сообщение
Конечно нет. Он там и не будет установлен.
Делайте документ через сторонние компоненты, например NPOI.
Цитата Сообщение от SashaS Посмотреть сообщение
Так ведь для этого мне надо на подключить ссылку на объект Excel, в проекте. А сервер на эту ссылку ругается потому что у него нет таких библиотек. Вы привели пример, когда используется всё-же эксель на стороне сервера ?
Какой сервер, если речь о клиентском приложении? Определить будет ли на машине юзера стоять MS Office в принципе невозможно. Но причём тут проект и сервер я не очень понимаю.
0
6 / 6 / 0
Регистрация: 02.04.2012
Сообщений: 21
27.04.2012, 06:42 8
На дерзай.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 protected void Export(object sender, EventArgs e)
    {
        string attachment = "attachment; filename=" + "fbp" + DateTime.Now.ToString("yyyyMMddHHmm") + ".xls";
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/ms-excel";
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        HtmlForm frm = new HtmlForm();
        GridView1.Parent.Controls.Add(frm);
        ;
        frm.Attributes["runat"] = "server";
        frm.Controls.Add(GridView1);
        
        frm.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
 
    }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2012, 06:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Экспорт данных в Excel при условии, что на стороне клиента не установлен MS Office
Всем привет! Поевился такой вопрос, кто знает подскажите, пожалуйсто! Хочу сделать экспорт данных в...

Можно ли с использованием ASP/JavaScript ОТКРЫТЬ на стороне клиента Excel?
Можно ли с использованием ASP/JavaScript ОТКРЫТЬ на стороне клиента Excel?

Экспорт из SQL или со странци ASP.NET (GridView) в Excel, на стороне клиента
Здравствуйте. Как реализовать выгрузку данных в Excel на строне клента. То есть чтобы вся...

Проверка актуальности данных в БД на стороне клиента
!!!ОсторожноМногоБукв!!! Всем привет. Ситуация такая: есть БД, допустим в ней есть таблица &quot;Test&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.