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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.09.2008, 15:39   #1
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию как из delphi создать в word таблицу

таблица состоит из 6 столбцов.
чтобы данные шли в виде:
x[1] y[1] z[1] x[3] y[3] z[3]
x[2] y[2] z[2] x[4] y[4] z[4]

а то у меня получается только:
x[1] y[1] z[1] x[2]y[2]z[2]
x[3] y[3] z[3] x[4]y[4]z[4]

массив данных состоит из 180 значений, то есть последнее x[180]y[180]z[180]. подскажите как сделать.

Последний раз редактировалось Dennikid; 29.09.2008 в 15:44.
Dennikid вне форума
Старый 01.10.2008, 12:42   #2
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

procedure TForm1.Button3Click(Sender: TObject);


var
tf,t,f:integer;
R: Range;
Direction, Separator, Format: OleVariant;
What : OLEVariant;
Name : OLEVariant;
FileName: OLEVariant;
SaveChanges: OleVariant;
Line1,Line2,Line3:string;
begin
OpenDialog2.InitialDir:='C:\';
if OpenDialog2.Execute then
begin
Line1 := 'Угол,градусы Iпопер,кд Iпрод,кд';
FileName:=OpenDialog2.FileName;
WordApp1.Documents.Open(FileName, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
What := wdGoToBookmark;
Name := 'таблица';
WordApp1.Selection.GoTo_(What, EmptyParam, EmptyParam, Name);
//WordApp1.;
WordApp1.Selection.Font.Size:=10;
R := WordApp1.Selection.Range;
Direction := wdCollapseEnd;
R.Collapse(Direction);
R.InsertAfter(Line1+' '+Line1);
f:=Memo2.Lines.Capacity-1;
t:=0;
for t := 0 to f do
begin
R.InsertParagraphAfter;
Line2:=Memo2.Lines.strings[t]+' '+FloatToStr(Round(strToFloat(getwo rd(Memo3.Lines.strings[t],' ',2))));
Line3:=Memo2.Lines.strings[t+1]+' '+FloatToStr(Round(strToFloat(getwo rd(Memo3.Lines.strings[t+1],' ',2))));
R.InsertAfter(Line2+' '+Line3);
end
else
begin
R.InsertParagraphAfter;
t:=f;
Line2:=Memo2.Lines.strings[t]+' '+FloatToStr(Round(strToFloat(getwo rd(Memo3.Lines.strings[t],' ',2))));
R.InsertAfter(Line2);
end;
end;
Separator := ' ';
Format := wdTableFormatGrid1;
R.ConvertToTable(Separator, EmptyParam, EmptyParam,
EmptyParam, Format, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam,EmptyParam, EmptyParam);

код программы!
Dennikid вне форума
Старый 01.10.2008, 13:41   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

В общем случае таблица в Word создается так:
Код:
var
  App: Variant;
begin
  App := CreateOleObject('Word.Application');
  App.Documents.Add;
  App.ActiveDocument.Tables.Add(App.ActiveDocument.Range(0, 0), 5, 2);
  App.Visible := True;
где
5- кол-во строк
2- кол-во столбцов
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 01.10.2008, 13:47   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

в сл. раз за флуд будет предупреждение. (Квэнди)

Последний раз редактировалось Квэнди; 01.10.2008 в 13:52.
Sibedir вне форума
Старый 01.10.2008, 14:44   #5
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

таблица создается, но мне нужно помочь. Как вставить данные правильно?
Dennikid вне форума
Старый 01.10.2008, 15:56   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
app.Tables.Item(1).Cell(1,1).Range.Text := 'текст';
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 01.10.2008, 15:58   #7
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

для 180*3 значений? каждому писать свой путь для вставки в таблицу?
к тому же таблицы должны быть разными. 3,6,9 столбцов. от 90 до 360 значений.

Последний раз редактировалось Dennikid; 01.10.2008 в 16:01.
Dennikid вне форума
Старый 01.10.2008, 16:01   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Кхм, вы знакомы с понятием циклов в программировании ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 01.10.2008, 16:10   #9
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

знаком, только как сделать чтобы 3 столбца при определенном пределе переходили во вторую колонку и писались оттуда так как я написал в начале.
Dennikid вне форума
Старый 01.10.2008, 16:18   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну все зависит от того по какому принципу должны заполняться данные. принцип у вас не описан.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать новый файл Word из макроса Excel? Dorvir Microsoft Office Excel 12 08.07.2008 16:50
Как создать таблицу в таблице?? Ntlegend Помощь студентам 1 14.05.2007 07:37
Создать таблицу Access в существующей базе. Nowichok БД в Delphi 6 10.02.2007 18:32
как из открыть Word из delphi doncova1 Общие вопросы Delphi 1 19.11.2006 16:06