C# +Word Шаблоны + Word
От: Garri  
Дата: 11.01.08 13:50
Оценка:
Подскажите есть несколько вордовских шаблонов ".dot" необходимо подставить их в вордовский документ и заполнить его из C# т.е. беру первый шаблон заполняю и подставляю в ворд документ беру второй шаблон заполняю и подставляю в тотже вордовский докумет. подскажите где можно посмотреть????
Re: C# +Word Шаблоны + Word
От: Igor_P  
Дата: 11.01.08 15:13
Оценка:
Здравствуйте, Garri, Вы писали:

G>Подскажите есть несколько вордовских шаблонов ".dot" необходимо подставить их в вордовский документ и заполнить его из C# т.е. беру первый шаблон заполняю и подставляю в ворд документ беру второй шаблон заполняю и подставляю в тотже вордовский докумет. подскажите где можно посмотреть????


Я делал так:
подключал вордовую сборку Microsoft.Office.Interop.Word.dll
в шаблоне писал макрос, в котором реализована логика работы с вордовскими документами (например сборка нескольких документов в один)

дальше такой код:

                //что-то типо клиента для доступа в ворд
                Microsoft.Office.Interop.Word.Application wordApp = null;
                try
                {
                    // если есть экземпляр - использовать его
                    Microsoft.Office.Interop.Word.Global wordGlob =    new Microsoft.Office.Interop.Word.GlobalClass();
                    wordApp = wordGlob.Application;
                }
                catch
                {
                    // если экземпляра нет - создать
                    wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                    //не показываем ворд, чтобы при выполнении макроса не тормозил
                    wordApp.Visible = false;
                }        

                // создание документа Word на основе заданного шаблона
                object[] _params = new object[4];
                _params[0] = dotfile; _params[1] = 0; _params[3] = 0;
                _params[2] = Microsoft.Office.Interop.Word.WdNewDocumentType.wdNewBlankDocument;
                //открываем новый документ на основе шаблона
                Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Add(ref _params[0],
                    ref _params[1], ref _params[2], ref _params[3]);
                wordDoc.Select();

                // вызов макроса, формирующего отчет
                _params[0] = file; //первый параметр макроса
                object _0 = null;
                try
                {
                    //здесь вызов макроса Report30 в ворде с передачей одного параметра
                    wordApp.Run("Report30", ref _params[0], ref _0, ref _0, ref _0, ref _0, ref _0, ref _0,    ref _0,
                        ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0,    ref _0, ref _0,
                        ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0);
                    //показываем ворд
                    wordApp.Visible = true;
                }
                catch(Exception ex)
                {
                    MessageBox.Show("", "Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                }

                try
                {
                    wordDoc.ActiveWindow.Visible = true;
                }
                catch{}

если требовалось передать какие-нибудь данные из программы на С# в ворд, то в программе создавался файл (обычно хмл), а в ворде макрос, разбирающий этот файл и заполняющее документ его содержимым. Вызов макроса осуществляется методом Run, а путь ко временному хмл-файлу передается в первом параметре макроса.

Еще у нас один чувак пытался соединять книги Excel (копировать листы из одной в другую) через Interop и без макросов, но у него нифига не вышло.
Re[2]: C# +Word Шаблоны + Word
От: Аноним  
Дата: 14.01.08 07:29
Оценка:
Здравствуйте, Igor_P, Вы писали:

I_P>Здравствуйте, Garri, Вы писали:


G>>Подскажите есть несколько вордовских шаблонов ".dot" необходимо подставить их в вордовский документ и заполнить его из C# т.е. беру первый шаблон заполняю и подставляю в ворд документ беру второй шаблон заполняю и подставляю в тотже вордовский докумет. подскажите где можно посмотреть????


I_P>Я делал так:

I_P>подключал вордовую сборку Microsoft.Office.Interop.Word.dll
I_P>в шаблоне писал макрос, в котором реализована логика работы с вордовскими документами (например сборка нескольких документов в один)

I_P>дальше такой код:


I_P>
I_P>                //что-то типо клиента для доступа в ворд
I_P>                Microsoft.Office.Interop.Word.Application wordApp = null;
I_P>                try
I_P>                {
I_P>                    // если есть экземпляр - использовать его
I_P>                    Microsoft.Office.Interop.Word.Global wordGlob =    new Microsoft.Office.Interop.Word.GlobalClass();
I_P>                    wordApp = wordGlob.Application;
I_P>                }
I_P>                catch
I_P>                {
I_P>                    // если экземпляра нет - создать
I_P>                    wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
I_P>                    //не показываем ворд, чтобы при выполнении макроса не тормозил
I_P>                    wordApp.Visible = false;
I_P>                }        

I_P>                // создание документа Word на основе заданного шаблона
I_P>                object[] _params = new object[4];
I_P>                _params[0] = dotfile; _params[1] = 0; _params[3] = 0;
I_P>                _params[2] = Microsoft.Office.Interop.Word.WdNewDocumentType.wdNewBlankDocument;
I_P>                //открываем новый документ на основе шаблона
I_P>                Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Add(ref _params[0],
I_P>                    ref _params[1], ref _params[2], ref _params[3]);
I_P>                wordDoc.Select();

I_P>                // вызов макроса, формирующего отчет
I_P>                _params[0] = file; //первый параметр макроса
I_P>                object _0 = null;
I_P>                try
I_P>                {
I_P>                    //здесь вызов макроса Report30 в ворде с передачей одного параметра
I_P>                    wordApp.Run("Report30", ref _params[0], ref _0, ref _0, ref _0, ref _0, ref _0, ref _0,    ref _0,
I_P>                        ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0,    ref _0, ref _0,
I_P>                        ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0, ref _0);
I_P>                    //показываем ворд
I_P>                    wordApp.Visible = true;
I_P>                }
I_P>                catch(Exception ex)
I_P>                {
I_P>                    MessageBox.Show("", "Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
I_P>                }

I_P>                try
I_P>                {
I_P>                    wordDoc.ActiveWindow.Visible = true;
I_P>                }
I_P>                catch{}

I_P>

I_P>если требовалось передать какие-нибудь данные из программы на С# в ворд, то в программе создавался файл (обычно хмл), а в ворде макрос, разбирающий этот файл и заполняющее документ его содержимым. Вызов макроса осуществляется методом Run, а путь ко временному хмл-файлу передается в первом параметре макроса.

I_P>Еще у нас один чувак пытался соединять книги Excel (копировать листы из одной в другую) через Interop и без макросов, но у него нифига не вышло.



А без макросов никак нельзя работать слишком муторно получиться т.к. шаблоны динамически добовляться должны и данные подставляються по букмаркам так что мне надо другой путь искать.
Re: C# +Word Шаблоны + Word
От: GarryCSharp  
Дата: 16.01.08 05:53
Оценка:
Здравствуйте, Garri, Вы писали:

G>Подскажите есть несколько вордовских шаблонов ".dot" необходимо подставить их в вордовский документ и заполнить его из C# т.е. беру первый шаблон заполняю и подставляю в ворд документ беру второй шаблон заполняю и подставляю в тотже вордовский докумет. подскажите где можно посмотреть????


Так что никто незнает как это сделать??????
Re[2]: C# +Word Шаблоны + Word
От: Slider_spb Россия  
Дата: 16.01.08 15:00
Оценка:
Здравствуйте, GarryCSharp, Вы писали:

GCS>Здравствуйте, Garri, Вы писали:


G>>Подскажите есть несколько вордовских шаблонов ".dot" необходимо подставить их в вордовский документ и заполнить его из C# т.е. беру первый шаблон заполняю и подставляю в ворд документ беру второй шаблон заполняю и подставляю в тотже вордовский докумет. подскажите где можно посмотреть????


GCS>Так что никто незнает как это сделать??????

думаю, в этом случае надо юзать word как OLE сервер и копать в этом направлении...
Re[3]: C# +Word Шаблоны + Word
От: TK Лес кывт.рф
Дата: 16.01.08 15:10
Оценка:
Здравствуйте, Slider_spb, Вы писали:

GCS>>Так что никто незнает как это сделать??????

S_>думаю, в этом случае надо юзать word как OLE сервер и копать в этом направлении...

Еще как минимум есть VisualStudio Tools For Office
... << RSDN@Home 1.2.0 alpha rev. 786>>
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.