• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии

работа с bookmarks word из winforms помогите разобраться С# VS2008

Все форумы  Поиск  Правила  Помощь 
 Активные темы  Темы без ответов
Привет, гость! Войти
Форумы GotDotNet.Ru » Office System » работа с bookmarks word из winforms помогите разобраться С# VS2008
Страницы: 1
RSS
работа с bookmarks word из winforms помогите разобраться С# VS2008
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#1
31.01.2010 17:44
Доброго времени суток.
Ребята большой хелп. Не могу разобраться как из winforms получить имя ЗАКЛАДКИ и присвоить ей значение или установить на ее место таблицу с данными. Документ формируется по кнопке с заполнением таблици и тд. Но как работать с закладками досихпор не разобрался.
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#2
31.01.2010 18:15
Все разобрался, жаль что не нашел данный документ раньше.
Объектная модель Word с точки зрения разработчика под .NET
Хотя похожую статью находил на сайте майкрософта, но там и не пахнет таким разъяснением. респект создателю.
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#3
31.01.2010 18:40
Ребята с 1-м не могу разобраться
StringWriter sw = new StringWriter();
            foreach (Word.Bookmark bmrk in worddocument.Bookmarks)
            {
             sw.WriteLine("Name: {0}, Contents: {1}",bmrk.Name, bmrk.Range.Text);
            }
            MessageBox.Show(sw.ToString(), "Bookmarks and Contents");

как применить к winforms непонятно. Это вроде код для консоли, но когда вставляем в консоль оно пишет,
Ошибка 1 Не удалось найти имя типа или пространства имен "StringWriter" (пропущена директива using или ссылка на сборку?) C:\Documents and Settings\Администратор\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\Program.cs 54 13 ConsoleApplication1
От какой библиотеки работает данная конструкция
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#4
31.01.2010 19:12
Ребята, ладно это все фигня. Все доходит по чуть. Однако. как установить закладку в определенное место, или при ее удалении и вновь создании программно поставить ее в тоже самое место?
 
 
LSD.NET
Сообщений: 127 Регистрация: 17.11.2009
#5
31.01.2010 20:18
какой закладки?!
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#6
31.01.2010 20:44
bookmark Мы в word - е можем их устанавливать потом, открывая данный документ мне нужно найти закладку с именем например "А" и после нее вставить текст. Есть метод нахождения закладки с поледующим ее удаление и пересозданием, однако тогда сбивается место в котором она была и создается она вначале документа.
Word.Bookmark bookMk1;
            Word.Bookmark bookMk2;
            Word.Bookmark bookMk3;
worddocument.ActiveWindow.View.ShowBookmarks = true;
            Object range = rng;
bookMk1 = worddocument.Bookmarks.Add("bookMk1", ref range);
            
            rng.InsertAfter("**Привет**");
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#7
31.01.2010 20:58
Вот нужно что-то типа этого только на C# а не на delphi если не ошибаюсь. Но вот как раз таки получить имена и вставлять после них свой код не получается.
procedure TForm1.Button1Click(SENder: TObject);
      VAR InvoiceTemplate: OleVariant;
          SetItemIndex   : OleVariant;
          CYcle          : Integer;
    BEGiN WrdApp.Connect;                                   // Соединение с OLE-сервером
          WrdApp.Visible :=True;                            // Показываем Word;
          InvoiceTemplate:=Edit1.Text;                      // имя файла шаблона
          WrdApp.Documents.Add(InvoiceTemplate,EmptyParam); // открытие выбранного шаблона в Word'e (Word97)
      FOR CYcle:=001
       TO WrdApp.ActiveDocument.Bookmarks.Count             // закладки от 1 до кол-ва закладок в документе;
       DO BEGiN 
             // SetItemIndex:=CYcle;                                                   
             // ShowMessage(WrdApp.ActiveDocument.Bookmarks.Item(SetItemIndex).Name);     // можно посмотреть имя каждой закладки;
                WrdApp.ActiveDocument.Bookmarks.Item(SetItemIndex).Select;                // выделяем закладку
                WrdApp.ActiveDocument.Bookmarks.Item(SetItemIndex).Range.Text:='Replase'; // вставляем свой текст
             // WrdApp.Selection.TypeText('Replase');
                ENd; // CYCLE получили список закладок;
                End; // procedure
 
 
dragon24
Сообщений: 4 Регистрация: 06.07.2009
#8
31.01.2010 21:34
Какая разница на каком языке писать (кроме конечно, некоторых нюансов с необязательными параметрами и некоторыми другими)?? Объектная модель ворда одна и та же. =)
Чтобы вставить в закладку под названием "МояМегаЗакладка" свой текст, надо, например, написать такой код:

object bmkName = "МояМегаЗакладка";
if (Doc.Bookmarks.Exists((string) bmkName))//проверяем, существует ли такая закладка в документе
   {
      var range = Doc.Bookmarks.get_Item(ref bmkName).Range;//получаем range закладки
      if (range!=null)
          {
                var data = "Это данные, которые надо вставить вместо текста закладки";
                range.Text = data;
                //После вставки текста закладка исчезнет, если необходимо её сохранить, то создаём её заново:
                var newRange = range as object;
                Doc.Bookmarks.Add(bmkName.ToString(), ref newRange);
           }
    }

Естественно, закладка предварительно должна быть создана в документе либо вручную либо программно, иначе ничего не произойдёт. Doc в данном случае это ссылка на документ, с которым работаем (это я думаю понятно). =)
 
 
dragon24
Сообщений: 4 Регистрация: 06.07.2009
#9
31.01.2010 21:55
Kreol, спасибо за ссылочку на статью, интересная, почитаю, может найду чего нового для себя.
В принципе вопрос интересный, о том как сохранить закладку после вставки текста в неё. Я пока что решаю эту проблему пересозданием её заново, как и привела вам пример своего кода. Не уверена, что это решение самое прямое, возможно стоит, например, создавать пустую закладку (без текста в ней всмысле) и использовать InsrtAfter(). Не пробовала.
Если у кого-нить есть хорошее решение и аргументы в его пользу, буду рада услышать. =)
 
 
Kreol
Сообщений: 53 Регистрация: 15.03.2007
#10
31.01.2010 22:28
Цитата
dragon24:
Отпишись мне по аське 280811275 или Скайпу kreol2011 или на мыло lifelove2005@mail.ru

Спасибо большое заработало :) 2 дня искал этот (хотя бы приближенный) код, где ты его нарыла???
В какой литературе. Я уже перелопатил ну больше 10 книг. Ничего. Спасла частично статья на которую наткнулся.
 
 
 
Страницы: 1
Форумы GotDotNet.Ru » Office System » работа с bookmarks word из winforms помогите разобраться С# VS2008
О сайте   Свяжитесь с нами   Конфиденциальность   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru