Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
4 / 4 / 0
Регистрация: 21.06.2011
Сообщений: 25
.NET 4.x

Как передать данные из datagridview в Excel / Word?

21.02.2014, 21:02. Показов 3598. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
У меня есть шаблон в word, где прописаны метки, я открываю этот шаблон:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//создание документа
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
//загрузка документа
Microsoft.Office.Interop.Word.Document doc = null;
 
string patchto = System.Windows.Forms.Application.StartupPath + "//tmpl//";
 
object fileName = patchto + "report_client.doc";
object falseValue = false;
object trueValue = true;
object missing = Type.Missing;
 
doc = app.Documents.Open(ref fileName, ref missing, ref trueValue,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing);
Далее нахожу метку и заменяю ее на данные из программы:
C#
1
2
3
4
5
6
7
8
9
10
11
//Очищаем параметры поиска
app.Selection.Find.ClearFormatting();
app.Selection.Find.Replacement.ClearFormatting();
//Задаём параметры замены и выполняем замену.
object findTextFIO = "$FIO$";
object replaceWithFIO = fio;
object replaceFIO = 2;
 
app.Selection.Find.Execute(ref findTextFIO, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref missing, ref missing,
                        ref replaceWithFIO, ref replaceFIO, ref missing, ref missing, ref missing, ref missing);
Все отрабатывает замечательно.

Вопрос: как мне быть с данными из datagridview, надо передать все данные (как понимаю, циклом) в одну метку, чтобы развернулась таблица?
Word или Excel - не принципиально.

P.S.: пример шаблона в приложении. Метка $DGV_TABLE$ - куда следует заполнить данные.
Миниатюры
Как передать данные из datagridview в Excel / Word?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2014, 21:02
Ответы с готовыми решениями:

Как передать данные из Outlook в Word?
задача: программно открыть календарь в Outlook 2000, найти все встречи на текущую дату и поместить их в новый документ Word в виде...

Как перенести данные из DataGridView в Word?
В DataGridView мне надо что бы поля Фамилия,Имя,Отчество и Дата рождения переносились в Word. Вот пример моего кода, но он переносит только...

Word interop Ribbon1.cs и Form1.cs Как передать данные?
Всем привет. Проблема такая> Не знаю как передать данные с одной формы на другую. Я создал форму в Form1.cs Design. В этой форме имеются...

4
 Аватар для Danila_Bagrov
-12 / 31 / 4
Регистрация: 22.09.2012
Сообщений: 116
21.02.2014, 22:39
проще в эксель. получаете заглавную строчку, вставляете пустую вниз, туда данные, пишете координаты новой строчки и по кругу. вам очень помогут макросы. пишите макрос и от них отталкивайтесь
0
4 / 4 / 0
Регистрация: 21.06.2011
Сообщений: 25
22.02.2014, 09:51  [ТС]
Danila_Bagrov, пример можно?
0
 Аватар для Danila_Bagrov
-12 / 31 / 4
Регистрация: 22.09.2012
Сообщений: 116
22.02.2014, 12:09
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
// using у вас, я понимаю, есть
// определения
Microsoft.Office.Interop.Excel.Sheets sheets = ObjWorkBook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1);
 
// вставка данных
ws.Cells[RowOnGaz - 2, 11] = DateTime.Now.Date.ToShortDateString(); 
// объединение ячеек
ws.Cells.get_Range("K" + (RowOnGaz - 2).ToString(), "M" + (RowOnGaz - 2).ToString()).MergeCells = true; 
// ВСТАВКА НОВОЙ СТРОЧКИ СО СДВИГОМ ВНИЗ
var cellsDRnr = ws.get_Range("E" + CurRow, "E" + CurRow);
cellsDRnr.EntireRow.Insert(-4121, Missing.Value);
//вставка данных
// естественно, что это все цикле крутиться и ждет окончания чтения данных (у меня из базы)
ws.Cells[CurRow, 2] = dr2["ind"].ToString();
ws.Cells.get_Range("B" + CurRow, "C" + CurRow).MergeCells = true;
ws.Cells[CurRow, 4] = dr2["name"].ToString();
ws.Cells.get_Range("D" + CurRow, "I" + CurRow).MergeCells = true;
ws.Cells[CurRow, 10] = dr2["NumI"].ToString();
ws.Cells.get_Range("J" + CurRow, "L" + CurRow).MergeCells = true;
ws.Cells[CurRow, 13] = dr2["KolVo"].ToString();
ws.Cells.get_Range("m" + CurRow, "n" + CurRow).MergeCells = true;
ws.Cells[CurRow, 15] = dr2["Cena1"].ToString();
ws.Cells.get_Range("O" + CurRow, "P" + CurRow).MergeCells = true;
// рисуем таблицу
var cellsDR = ws.get_Range("B" + CurRow, "P" + CurRow);
имена переменных предельно простые, если непонятно что-то, то пишете в аську. в контактах есть.
1
4 / 4 / 0
Регистрация: 21.06.2011
Сообщений: 25
22.02.2014, 12:16  [ТС]
Danila_Bagrov, спасибо, в понедельник на работе попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2014, 12:16
Помогаю со студенческими работами здесь

Как передать данные в Excel
Привет. подскажите как сделатьнужную мне задачу: в вб форма с 10 текстбоксами, при нажатии на кнопку происходит запись этих данных в уже...

Как передать данные из qbasic в excel?
Приветствую. Есть прога в бейсике, и результат надо переносить в excel. Вручную переносить не вариант(около 40к значений). Есть ли какой...

Как данные с ListBox передать в Excel?
Подскажите, пожалуйста, как данные с ListBox передать в Excel? Microsoft.Office.Interop.Excel.Application ExcelApp = new...

Как правильно передать данные из таблицы DataGridView в SQL базу данных
Здравствуйте. Есть таблица DataGridView которая содержит данный которые добавляет пользователь или загружает из файла. Как мне правильно...

Как передать данные из TextBox в Excel файл
Здравствуйте! Нужна помощь. Есть программа из 2х форм. В первую форму вводятся значения для расчета, на второй форме выводится результат с...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru