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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2010, 06:51   #1
Бусурманин хлоров
Новичок
Джуниор
 
Регистрация: 11.12.2010
Сообщений: 1
По умолчанию экспорт из StringGrid в Word

Всем привет! Я хочу экспортировать данные из таблички StringGrid в Word. Все сделал-проект компилируется, но при запуске процедуры Delphi просит ввести enter table number. Я не знаю что это такое, подскажите пожалуйста как решить эту проблему
Код:
procedure TForm1.Button1Click(Sender: TObject);
const 
aworddoc = 'C:\xyztesttable.doc'; 
var 
msword, table: olevariant; 
irows, icols, igridrows, jgridcols, inumtables, itablechosen: integer; 
celltext: string; 
inputstring: string;
begin 
try 
msword := createoleobject('word.application'); 
except 
// error.... 
exit; 
end; 

try 
msword.visible := false;
msword.documents.open(aworddoc); 

// get number of tables in document 
inumtables := msword.activedocument.tables.count; 

inputstring := inputbox(inttostr(inumtables) + 
' tables in word document', 'please enter table number', '1'); 
// todo: validate string for integer, range... 
itablechosen := strtoint(inputstring); 

// access table 
table := msword.activedocument.tables.item(itablechosen); 
// get dimensions of table 
icols := table.rows.count; 
irows := table.columns.count; 
// adjust stringgrid columns
stringgrid1.rowcount := icols;
stringgrid1.colcount := irows + 1;

// loop through cells 
for igridrows := 1 to irows do 
for jgridcols := 1 to icols do 
begin 
celltext := table.cell(jgridcols, igridrows).range.formattedtext; 
if not varisempty(celltext) then 
begin 
// remove tabs 
celltext := stringreplace(celltext, 
#$d, '', [rfreplaceall]); 
// remove linebreaks 
celltext := stringreplace(celltext, #$7, '', [rfreplaceall]); 

// fill stringgrid 
stringgrid1.cells[igridrows, jgridcols] := celltext; 
end; 
end; 
//.. 
finally 
msword.quit; 
end; 
end;

Последний раз редактировалось Stilet; 11.12.2010 в 09:15.
Бусурманин хлоров вне форума Ответить с цитированием
Старый 11.12.2010, 09:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это ведь не твой код?
Он вносит данные в уже имеющуюся таблицу, которой скорее всего у тебя нет.
Загляни сюда:http://www.programmersforum.ru/showthread.php?t=57366
Обрати внимание на
Код:
NewDoc := WordApp.Documents.Add;
и
Код:
WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);
Что есть ярким примером создания документа и создания таблицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из StringGrid в Word Polotenchik Общие вопросы Delphi 12 23.09.2011 23:22
Экспорт двух или более таблиц Stringgrid в MS word RomanDemidov Общие вопросы Delphi 4 16.11.2010 16:18
Экспорт со Stringgrid в Word (работа с несколькими табицами) RomanDemidov Помощь студентам 0 12.11.2010 23:28
экспорт в word AD_min Общие вопросы Delphi 4 05.12.2008 14:17