|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2018, 17:22 | #1 |
Регистрация: 18.11.2016
Сообщений: 8
|
Вывод данных из нескольких DataGridView в один документ Word
Здравствуйте, у меня есть несколько DataGridView. Нужно вывести данные из них в таблицу. Несколько дней уже думаю, не получается. Если выводить эти таблицы в отдельные документы или страницы, то работает. Но мне нужно, чтобы все таблицы выводились на одну страницу. Подскажите, пожалуйста
private void button4_Click(object sender, EventArgs e) { try { Word.Application word = new Word.Application(); Word.Document wordDoc; wordDoc = word.Documents.Add( Type.Missing, false, Microsoft.Office.Interop.Word.WdNew DocumentType.wdNewBlankDocument , true); word.Selection.TypeText("Клиент:"); { Word.Table wordTable1 = wordDoc.Tables.Add(word.Selection.R ange, fun3DataGridView.RowCount, 5, Word.WdDefaultTableBehavior.wdWord9 TableBehavior, Word.WdAutoFitBehavior.wdAutoFitWin dow); Word.Range cellrange1; wordTable1 = wordDoc.Tables[1]; cellrange1 = wordDoc.Tables[1].Cell(1, 1).Range; cellrange1.Text = "Фамилия"; cellrange1 = wordDoc.Tables[1].Cell(1, 2).Range; cellrange1.Text = "Имя"; cellrange1 = wordDoc.Tables[1].Cell(1, 3).Range; cellrange1.Text = "Отчество"; cellrange1 = wordDoc.Tables[1].Cell(1, 4).Range; cellrange1.Text = "Дата заказа"; cellrange1 = wordDoc.Tables[1].Cell(1, 5).Range; cellrange1.Text = "Дата исполнения"; for (int i = 0; i < fun3DataGridView.RowCount - 1; i++) { cellrange1 = wordDoc.Tables[1].Cell(i + 2, 1).Range; cellrange1.Text = fun3DataGridView.Rows[i].Cells[0].Value.ToString(); cellrange1 = wordDoc.Tables[1].Cell(i + 2, 2).Range; cellrange1.Text = fun3DataGridView.Rows[i].Cells[1].Value.ToString(); cellrange1 = wordDoc.Tables[1].Cell(i + 2, 3).Range; cellrange1.Text = fun3DataGridView.Rows[i].Cells[2].Value.ToString(); cellrange1 = wordDoc.Tables[1].Cell(i + 2, 4).Range; cellrange1.Text = fun3DataGridView.Rows[i].Cells[3].Value.ToString(); cellrange1 = wordDoc.Tables[1].Cell(i + 2, 5).Range; cellrange1.Text = fun3DataGridView.Rows[i].Cells[4].Value.ToString(); } } word.Selection.TypeParagraph(); word.Selection.TypeText("Услуги:"); Word.Table wordTable2 = wordDoc.Tables.Add(word.Selection.R ange, fun1DataGridView.RowCount, 5, Word.WdDefaultTableBehavior.wdWord9 TableBehavior, Word.WdAutoFitBehavior.wdAutoFitWin dow); Word.Range cellrange2; wordTable2 = wordDoc.Tables[1]; cellrange2 = wordDoc.Tables[1].Cell(1, 1).Range; cellrange2.Text = "Описание Услуги"; cellrange2 = wordDoc.Tables[1].Cell(1, 2).Range; cellrange2.Text = "Деталь"; cellrange2 = wordDoc.Tables[1].Cell(1, 3).Range; cellrange2.Text = "Исполнитель"; cellrange2 = wordDoc.Tables[1].Cell(1, 4).Range; cellrange2.Text = "Телефон исполнителя"; cellrange2 = wordDoc.Tables[1].Cell(1, 5).Range; cellrange2.Text = "Сумма"; for (int i = 0; i < fun1DataGridView.RowCount - 1; i++) { cellrange2 = wordDoc.Tables[1].Cell(i + 2, 1).Range; cellrange2.Text = fun1DataGridView.Rows[i].Cells[0].Value.ToString(); cellrange2 = wordDoc.Tables[1].Cell(i + 2, 2).Range; cellrange2.Text = fun1DataGridView.Rows[i].Cells[1].Value.ToString(); cellrange2 = wordDoc.Tables[1].Cell(i + 2, 3).Range; cellrange2.Text = fun1DataGridView.Rows[i].Cells[2].Value.ToString(); cellrange2 = wordDoc.Tables[1].Cell(i + 2, 4).Range; cellrange2.Text = fun1DataGridView.Rows[i].Cells[3].Value.ToString(); cellrange2 = wordDoc.Tables[1].Cell(i + 2, 5).Range; cellrange2.Text = fun1DataGridView.Rows[i].Cells[4].Value.ToString(); } word.Selection.TypeText("Устройство :"); Word.Table wordTable3 = wordDoc.Tables.Add(word.Selection.R ange, fun2DataGridView.RowCount, 3, Word.WdDefaultTableBehavior.wdWord9 TableBehavior, Word.WdAutoFitBehavior.wdAutoFitWin dow); Word.Range cellrange3; wordTable3 = wordDoc.Tables[1]; cellrange3 = wordDoc.Tables[1].Cell(1, 1).Range; cellrange3.Text = "Название телефона"; cellrange3 = wordDoc.Tables[1].Cell(1, 2).Range; cellrange3.Text = "Наименование"; cellrange3 = wordDoc.Tables[1].Cell(1, 3).Range; cellrange3.Text = "Серийный номер"; for (int i = 0; i < fun2DataGridView.RowCount - 1; i++) { cellrange3 = wordDoc.Tables[1].Cell(i + 2, 1).Range; cellrange3.Text = fun2DataGridView.Rows[i].Cells[0].Value.ToString(); cellrange3 = wordDoc.Tables[1].Cell(i + 2, 2).Range; cellrange3.Text = fun2DataGridView.Rows[i].Cells[1].Value.ToString(); cellrange3 = wordDoc.Tables[1].Cell(i + 2, 3).Range; cellrange3.Text = fun2DataGridView.Rows[i].Cells[2].Value.ToString(); } word.Visible = true; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString ()); } } |
24.11.2018, 20:19 | #2 | |
Пользователь
Регистрация: 19.10.2018
Сообщений: 72
|
Цитата:
И пусть уж Эксель занимается распечаткой(ему укажите типа "Альбомный лист", и "По ширине листа чтоб все помещалось"). Тип того.(Я так из прог своих на VB.NET в большинстве случаев делаю - и все довольны). |
|
24.11.2018, 21:13 | #3 |
Пользователь
Регистрация: 19.10.2018
Сообщений: 72
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод нескольких таблиц БД на DataGridView C#+Access - C# | oops93 | C# (си шарп) | 0 | 08.05.2018 10:55 |
Вывод данных в word-документ с помощью interop.word | Joose | Общие вопросы .NET | 2 | 22.05.2015 19:17 |
Вывод в один DBGrid данных из нескольких таблиц без SQL запроса | Muramidaza | БД в Delphi | 1 | 07.03.2014 12:56 |
Сохранение текста из нескольких полей в один документ | Vladya | Общие вопросы Delphi | 2 | 02.01.2014 13:05 |
Один BindingNavigator для нескольких Datagridview | prod | C# (си шарп) | 1 | 26.02.2012 12:50 |