Vasiaofcose Гость
|
Добавлено: Вт Май 06 2003 06:06 Заголовок сообщения: ковыряние в word, excel документах |
|
|
Стоит простая но не простая задача - имеется файл doc(word) содержащий заголовок - простой абзац, и таблицу, затем подвал. Вопрос : какими программными средствами(не копаясь в формате doc файла) можно обратиться к word'у как к серверу, чтобы он выдавал содержимое ячейки таблицы. P.S. сейчсас это делаю сохраняя файл в текст и там уже его потрошу, но,при этом, теряются некоторые символы. |
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Вт Май 06 2003 10:45 Заголовок сообщения: грубо вырезал у себя из проги (+) |
|
|
void TFDocum::TextDoc(AnsiString FText) { /* Variant my_doc; Variant my_word_app; Variant my_range; ShellExecute(Handle, "Open", FText.c_str(), NULL, NULL, SW_SHOWDEFAULT);
Variant this_doc2; Variant my_docs2; Variant my_word2 = Variant::GetActiveObject("word.application"); my_docs2 = my_word2.OlePropertyGet("Documents"); this_doc2 = my_docs2.OleFunction("Open", (Variant)FText.c_str());
try { my_word_app = Variant::GetActiveObject("word.application"); } catch(...) { ShowMessage("Please open word and load a document and retry"); return; } my_doc = my_word_app.OlePropertyGet("ActiveDocument"); my_range = my_doc.OleFunction("Range"); my_range = my_doc.OleFunction("Range",(Variant)0,Variant(253)); DM-Tdocum-Edit(); DM-Tdocum-FieldValues["prim"] = my_range = my_doc.OleFunction("Range",(Variant)0,Variant(253)); DM->Tdocum-Post(); my_word_app = my_doc.OleFunction("Close",(Variant)"FText.c_str()"); PostMessage(FindWindow(NULL,"Microsoft Word"), WM_QUIT, 0, 0); */ Variant my_doc; Variant my_word_app; Variant my_range; OleVariant files1; files1 = FText;
Screen->Cursor = crHourGlass;
WordDocument1-ConnectTo(WordApplication1-Documents-Open(file s1)); try { my_word_app = Variant::GetActiveObject("word.application"); } catch(...) { ShowMessage("Нет активных документов. Экспорт не выполнен."); return; }
my_doc = my_word_app.OlePropertyGet("ActiveDocument"); my_range = my_doc.OleFunction("Range"); my_range = my_doc.OleFunction("Range",(Variant)0,Variant(253)); DM-Tdocum-Edit(); DM-Tdocum-FieldValues["prim"] = my_range = my_doc.OleFunction("Range",(Variant)0,Variant(253));
Идея такова, что тебе нужно открыть документ и в нем через функции читать коллекцию из которой и выгружать нужные данные. Я с таблицами в ворде не работал, я сразу с текстом.
P.S. Напиши на почту, вышлю примерчики по работе с вордом в с++В, если нужно.
Разберешся с таблицой в ворде,и будет время кинь мне как, если не трудно. |
|