Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205

Вывод в WORD. Готовый. Просто вопрос

14.04.2011, 21:42. Показов 2769. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот написал код вывода в ворд. всё работает... но выводит несовсем так как я хочу...
Как выводит выложил в скрине.. Как хочу думаю и так понятно...
И ещё, опять проблемы со временем))) Отображает то что мне ненадо))
И ещё в фото может быть видно, что 1ый маршрут т.е. в 1ом столбце и 1ом столбце (если не считать меню) оно тоже жирным. Хотя в коде писал толкьо чтобы вся первая строка была жирной..


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WordApp:= CreateOleObject('Word.Application');
WordApp.Documents.Add;
WordApp.Visible:=true;
 index:=5; //Загоняем с первой строки
 DBGrid1.DataSource.DataSet.First;
 WordApp.Selection.Font.Size:=(16);
 WordApp.Selection.TypeText('Маршрут         Цена         Время         Кол-во мест');
 WordApp.Selection.TypeText(#13);
  WordApp.Selection.TypeText(#13);
      for i:=1 to  DBGrid1.DataSource.DataSet.RecordCount do
      begin
      for j:=1 to DBGrid1.FieldCount do begin
        WordApp.Selection.TypeText(DBGrid1.fields[j-1].asstring);
      inc(index);
      WordApp.Selection.Font.Size:=(13);
      WordApp.Selection.TypeText('           ');   END;
      WordApp.Selection.TypeText(#13);
      DBGrid1.DataSource.DataSet.Next;
Миниатюры
Вывод в WORD. Готовый. Просто вопрос  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2011, 21:42
Ответы с готовыми решениями:

Открыть готовый Word-файл
Всем привет. В чем суть : дали задание, в котором нужно работать на Delphi (ранее никогда не работал с Паскалем). Если вкратце, то суть...

Разбираю готовый код, возник вопрос
protected List<IDocListener> listeners = new List<IDocListener>(); Собственно, что в этом месте происходит, где об этом...

Открыть готовый файл Word и Excel
Какая процедура будет если по нажатию на кнопку открыть готовый файл Word и Excel

9
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
14.04.2011, 23:13
тут чтоб выровнять надо либо использовать только Tabs, либо моноширинный шрифт типа Courier
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
14.04.2011, 23:33
а обязательно в word'e? можт всё-таки excel?
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
15.04.2011, 00:07  [ТС]
В екселе сделал. это непроблема)
Но хотелось бы и в ворде))
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
15.04.2011, 06:19
Если в Word, то я бы такой вывод организовал бы в Word - таблицу. При этом, если границы ячеек надо скрыть, то и это можно сделать.
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
15.04.2011, 13:07  [ТС]
А можете привести код как это сделать??
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
15.04.2011, 13:15
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
А можете привести код как это сделать??
Могу, но не сейчас. Пока занят!
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
15.04.2011, 22:06  [ТС]
Ок. буду ждать....
0
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 2
15.12.2013, 22:50
Всем привет! я хочу чтоб только одну строку выводили , как это сделать?
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
16.12.2013, 03:27
Делал так, в документ вставлялись сначало <table1>, <table2>, <table3>, после функцией добавлял таблицу

Delphi
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
28
29
30
function AddTable(s, ltc, nt: integer; r, c: integer; Table: string): integer;
var
  tformat, tappbrd: OleVariant;
  len, a, b, vstart, vend: OleVariant;
  lt, j: integer;
begin
  lt:=length(Table);
  len:=Length(mainform.WordDocument1.Range.Text)-ltc;
  for j:=s to len-lt-1 do
  begin
    a:=j;
    b:=j+lt;
    if mainform.WordDocument1.Range(a, b).Text=Table then
    begin
      vstart:=j;
      vend:=j+lt;
      break;
    end;
  end;
  mainform.WordDocument1.Range(vstart, vend).Select;
 
  a:=0;
  b:=0;
  mainform.WordDocument1.Tables.Add(mainform.WordDocument1.Range(vstart, vend), r, c, EmptyParam, EmptyParam);
  tformat:=wdTableFormatGrid1;
  tappbrd:=wdTableFormatApplyBorders;
  mainform.WordDocument1.Tables.Item(nt).AutoFormat(tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
  mainform.WordDocument1.Tables.Item(nt).Range.Paragraphs.Alignment:=wdAlignParagraphCenter;
  result:=vend;
end;
Функция возвращает конец таблицы что бы с этой позиции начинать поиск следующей и еще вычисляется размер таблици lt. ниже пример вставки таблиц и их заполнение.
Delphi
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
sp:=0;
  sp:=AddTable(sp, 0, 1, N+1, N+2, '<table1>');
  lt:=(N+2)*N;
  WordDocument1.Tables.Item(1).Cell(1, 1).Range.Text:='i j';
  WordDocument1.Tables.Item(1).Cell(1, N+2).Range.Text:='di';
  WordDocument1.Tables.Item(1).Columns.Item(N+2).Shading.ForegroundPatternColor:=clSilver;
  li:=0;
  for i:=1 to N do
  begin
    WordDocument1.Tables.Item(1).Cell(i+1, 1).Range.Text:=inttostr(i);
    WordDocument1.Tables.Item(1).Cell(1, i+1).Range.Text:=inttostr(i);
    if not mainform.CheckBox1.Checked and(i=mainform.SpinEdit1.Value) then
    begin
      WordDocument1.Tables.Item(1).Cell(i+1, N+2).Range.Text:='0';
      //li:=1;
    end
    else
    WordDocument1.Tables.Item(1).Cell(i+1, N+2).Range.Text:=floattostr(MiMa[0, i-1-li]);
    for j:=1 to N do
    if floattostr(Matr[i, j])<>'1E30' then
    WordDocument1.Tables.Item(1).Cell(i+1, j+1).Range.Text:=floattostr(Matr[i, j])
    else
    WordDocument1.Tables.Item(1).Cell(i+1, j+1).Range.Text:='M';
  end;
  WordDocument1.Tables.Item(1).Columns.AutoFit;
 
 sp:=AddTable(sp, lt, 2, N+1, N+1, '<table2>');
  lt:=lt+(N+1)*N;
  li:=0;
  WordDocument1.Tables.Item(2).Cell(1, 1).Range.Text:='i j';
  for i:=1 to N do
  begin
    WordDocument1.Tables.Item(2).Cell(i+1, 1).Range.Text:=inttostr(i);
    WordDocument1.Tables.Item(2).Cell(1, i+1).Range.Text:=inttostr(i);
    //if not mainform.CheckBox1.Checked and(i=mainform.SpinEdit1.Value) then
    //li:=1;
    for j:=1 to N do
    if floattostr(Matr[i, j])<>'1E30' then
    WordDocument1.Tables.Item(2).Cell(i+1, j+1).Range.Text:=floattostr(Matr[i, j]-MiMa[0, i-1-li])
    else
    WordDocument1.Tables.Item(2).Cell(i+1, j+1).Range.Text:='M';
  end;
  WordDocument1.Tables.Item(2).Columns.AutoFit;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2013, 03:27
Помогаю со студенческими работами здесь

Экспорт из ListBox в готовый шаблон Word
Добрый день, нужна помощь в реализации одной функции, в общем в ListBox у меня хранится подробная информации о недостачах, переизбытках...

Готовый класс для работы с word
Существует ли такой класс для c#, если да, то где его можно взять?

просто вопрос=)
привет всем! кто знает если сюда задачу написать за сколько минут тут могут задачу решить? скоро зачеты хотел узнать((((

просто вопрос
есть новости которые находятся в таблице news скажите пожайлуста как сделать лучше чтоб к каждой новости фотографии прикрепить зарание...

Как выполнить готовый код на Word-2016?
Здравствуйте! Помогите, пожалуйста. Есть код, ниже, который раньше легко вставлял в Word-2007. Он тут же выполнялся, даже без...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru