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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2018, 17:22   #1
ptkuz
 
Регистрация: 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 ());
}
}
ptkuz вне форума Ответить с цитированием
Старый 24.11.2018, 20:19   #2
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от ptkuz Посмотреть сообщение
Здравствуйте, у меня есть несколько DataGridView. Нужно вывести данные из них в таблицу.
Так выводите(выбрасывайте эти гребанные отчеты ) в Эксель.
И пусть уж Эксель занимается распечаткой(ему укажите типа "Альбомный лист", и "По ширине листа чтоб все помещалось").
Тип того.(Я так из прог своих на VB.NET в большинстве случаев делаю - и все довольны).
Nintra GrayWorker вне форума Ответить с цитированием
Старый 24.11.2018, 21:13   #3
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от ptkuz Посмотреть сообщение
Если выводить эти таблицы в отдельные документы или страницы, то работает.
Может потому что вы указываете разные таржеты:
word.Selection.TypeText("Клиент:");
word.Selection.TypeText("Услуги:");
word.Selection.TypeText("Устройство :");
Nintra GrayWorker вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод нескольких таблиц БД на 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