Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с Word? Как работать с Word? 
:(
    Опции темы
cosamia
Дата 26.10.2005, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



нужно выполнить 2 операции:
1) создать word document и записать в него что-то.
2) открыть существующий документ, прочитать его, изменить и сохранить.
если ли у кого ссылки на примеры?

несколько уточню вопрос:

сделал так:
Код

object oMissing = System.Reflection.Missing.Value;
   object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
   //Start Word and create a new document.
   Word._Application oWord;
   Word._Document oDoc;
   oWord = new Word.Application();
   oWord.Visible = true;
   oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
    ref oMissing, ref oMissing);
   //Insert a paragraph at the beginning of the document.
   
   Word.Paragraph oPara1;
   oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
   oPara1.Range.Text = "Heading 1";
   oPara1.Range.Font.Bold = 1;
   oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
   oPara1.Range.InsertParagraphAfter();
   this.Close();  

Но при этом создается ворд докумен и открывается...
Сохранять его приходится в ручную.
Потому вопросы такие:
1) Как бы сделать так чтобы сохранялся он автоматически сохранял и закрывал
2) с созданием примерно на 50% разобрался, но как открыть уже существующий документ и как с ним работать? делать поиск, изменения и т.д.?

Кстати по-поводу сохранения:
сделал так, но не работает! т.е. сохраняется джокумент, но в нем ничего нет!!

Код

object fileName ="C:\\mydocument.doc";
   object _ = Type.Missing;
   object fileFormat = Word.WdSaveFormat.wdFormatDocument;
   object addToRecentFiles = false;
   object saveFormsData = true;
   oDoc.SaveAs(
    ref fileName,
    ref fileFormat, ref _, ref _, 
    ref addToRecentFiles,
    ref _, ref _, ref _, ref _,
    ref saveFormsData,
    ref _, ref _, ref _, ref _, ref _, ref _ );


Это сообщение отредактировал(а) cosamia - 26.10.2005, 08:44
PM   Вверх
mr.DUDA
Дата 26.10.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Воспользуйтесь поиском по форуму .NET, я несколько раз давал ответ с примерами. По поводу видимости окна Word, всего навсего нужно из первого исходника убрать строку "oWord.Visible = true;"


--------------------
user posted image
PM MAIL WWW   Вверх
cosamia
Дата 27.10.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



я пользовался, там у вас был только 1 пост и начинался он со слов- "опишу кратко..."
примеров кода там я не увидел.
проблема у меня по прежднему стоит.
смотрел на разных форумах и сайтах уже - бесполезно. никто ничего не знает.



>По поводу видимости окна Word, всего навсего нужно из первого исходника убрать строку "oWord.Visible = true;"

вы ошиблись. видимость окна меня не интересовала.
меня интересуют 2 вещи:
1) как прочитать содержимое ворд-документа
2) как сохранить ворд документ после того как я туда что-то записал.
код который есть в мсдн не работает smile(
PM   Вверх
mr.DUDA
Дата 27.10.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Цитата(cosamia @ 27.10.2005, 12:11)
я пользовался, там у вас был только 1 пост и начинался он со слов- "опишу кратко..."
примеров кода там я не увидел.

Плохо искали. Вот ссылка.

Цитата(cosamia @ 27.10.2005, 12:11)
вы ошиблись. видимость окна меня не интересовала.

Разве ? Может, я неправильно истолковал это:

Цитата(cosamia @ 26.10.2005, 08:43)
Но при этом создается ворд докумен и открывается...
Сохранять его приходится в ручную.

?


--------------------
user posted image
PM MAIL WWW   Вверх
cosamia
Дата 27.10.2005, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



>Но при этом создается ворд докумен и открывается...
>Сохранять его приходится в ручную.

здесь имелось ввиду следующая проблема:
программно открывается ворд , неважно визибл он или нет, но при попытке выполнить сохранение (описанными выше примерами кода) ничего не происходит, т.е. сохраняется пустой файл!
Однако по некоей причине выскакивает окно ворда хочу ли я сохранить док-т с именем которое у ворда идет по умолчанию.
Не знаю понятно ли объяснил...

А ссылку Вашу сейчас посмотрю, спасибо.
PM   Вверх
Guest
Дата 27.10.2005, 17:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(mr @ 27.10.2005, 14:08)
Цитата(cosamia @ 27.10.2005, 12:11)
я пользовался, там у вас был только 1 пост и начинался он со слов- "опишу кратко..."
примеров кода там я не увидел.

Плохо искали. Вот ссылка.

Цитата(cosamia @ 27.10.2005, 12:11)
вы ошиблись. видимость окна меня не интересовала.

Разве ? Может, я неправильно истолковал это:

Цитата(cosamia @ 26.10.2005, 08:43)
Но при этом создается ворд докумен и открывается...
Сохранять его приходится в ручную.

?

mr.DUDA , спасибо, ваш скрипт работает. Однако у меня несколько вопросов:

1) мне надо сделать SaveAs а не Save
тут у меня проблемы. Он не сохраняет...Просто Сохранить - сохраняет, а СохранитьКАк - не хочет...
Вы решали такую проблему уже?

2)
Как в ворде вообще происходит вставка текста?
вот я пишу если так
oDoc.Content.InsertParagraph();
oDoc.Content.InsertAfter("hello");

то все ок.
а если так
oDoc.Content.InsertParagraph();
oDoc.Content.InsertAfter("hello");
oDoc.Content.InsertParagraph();
то последний параграф переписывает мою строку! в рез-те ничего нет...
Кстати как в Content регулировать шрифты, и т.д.?

Я это делал через
Word.Paragraph oPara1;
oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
oPara1.Range.Text = "Heading 1";
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter();

Что работает в 2003 Studio но не работает в 2000....


  Вверх
mr.DUDA
Дата 27.10.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Цитата(Guest @ 27.10.2005, 17:12)
1) мне надо сделать SaveAs а не Save
тут у меня проблемы. Он не сохраняет...Просто Сохранить - сохраняет, а СохранитьКАк - не хочет...
Вы решали такую проблему уже?

Именно SaveAs у меня всегда работает. Save использовать стрёмно, т.к. может вылезти окно с предложением выбрать путь и имя для файла, а этого не хотелось бы.

Цитата(Guest @ 27.10.2005, 17:12)
Как в ворде вообще происходит вставка текста?
вот я пишу если так

Лично я привык использовать Selection и Range, чтобы указать в какое место документа будет добавлен текст. Выделить можно как кусок текста (вместе с таблицами и пр.), так и фрагмент нулевой длины - тогда просто курсор будет поставлен в нужное место. Range служит для определения начала и длины выделяемого фрагмента. После того, как курсор стоит в нужном месте (например в начале документа), текст легко вводится методами TypeText и TypeParagraph. Насчёт Insert... не знаю, как он работает. Вообще, насколько я понимаю, самый простой и надёжный способ программировать для офиса - это вначале пробовать выполнять те же действия в окне Visual Basic for Word/Excel, а затем переносить код (практически без изменений, если не считать параметров по умолчанию) в C#. Ещё полезной является возможность записать макрос в ворде, и просмотреть его в виде кода - иногда просто незаменимая фича.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.