71 / 69 / 19
Регистрация: 13.12.2011
Сообщений: 274
1

Не работает генерация документа MS Word с установленным MS Office 2003

22.03.2012, 00:18. Показов 1782. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему не работает генерация документа MS Word с установленным MS Office 2003? Работает только с MS Office 2010!

Пример создания word-отчета можно посмотреть в моей теме (описаны все шаги + какие библиотеки подключаем) Создание word-отчета (*.doc) в WPF

Какие ошибки выдает сейчас сказать не могу, нужно тестировать.

Есть соображения?

Код для примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
       Word.Application wrdApp;
        Word._Document wrdDoc;
        Object oMissing = System.Reflection.Missing.Value;
        Object oFalse = false;                    
                    Word.Selection wrdSelection;
                    Word.MailMerge wrdMailMerge;
                    Word.MailMergeFields wrdMergeFields;
                    Word.Table wrdTable;
                    string StrToAdd;
 
                    // Create an instance of Word  and make it visible.
                    wrdApp = new Word.Application();
                    wrdApp.Visible = false;
 
                    // Add a new document.
                    wrdDoc = wrdApp.Documents.Add(ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing);
                    wrdDoc.Select();
 
                    wrdApp.Selection.PageSetup.Orientation = WdOrientation.wdOrientLandscape;
 
 
                    wrdSelection = wrdApp.Selection;
                    wrdMailMerge = wrdDoc.MailMerge;
 
                    // Create a string and insert it into the document.    
                    wrdSelection.ParagraphFormat.SpaceAfter = 0;
                    StrToAdd = ". № " + m.textBox1.Text + "/" + m.textBox4.Text + "\r\nот " + System.DateTime.Now.ToString("dd.MM.yyyy");
                    wrdSelection.ParagraphFormat.Alignment =
                        Word.WdParagraphAlignment.wdAlignParagraphCenter;
                    wrdSelection.Font.Bold = 1;
                    wrdSelection.Font.Size = 18;
                    wrdSelection.Font.Name = "Times New Roman";
                    wrdSelection.ParagraphFormat.LineSpacing = 13;
                    wrdSelection.TypeText(StrToAdd);
 
                    InsertLines(1);
                    wrdSelection.ParagraphFormat.SpaceAfter = 10;
                    wrdSelection.PageSetup.LeftMargin = 15;
                    wrdSelection.PageSetup.RightMargin = 15;
                    wrdSelection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphJustify;
                    wrdSelection.Font.Bold = 0;
                    wrdSelection.Font.Size = 12;
                    wrdSelection.ParagraphFormat.LineSpacing = 10;
 
                    wrdSelection.Font.Italic = 1;
                    wrdSelection.TypeText("Наименование и код:\n");
                    wrdSelection.Font.Italic = 0;
                    wrdSelection.ParagraphFormat.LeftIndent = 10;
                    wrdSelection.TypeText(m.textBox3.Text + " (" + m.textBox4.Text + ")\n");
                    wrdSelection.ParagraphFormat.LeftIndent = 0;
                    wrdSelection.Font.Italic = 1;
                    wrdSelection.TypeText("Предмет:\n");
                    wrdSelection.Font.Italic = 0;
                    wrdSelection.ParagraphFormat.LeftIndent = 10;
                    wrdSelection.TypeText(m.textBox5.Text + "\n");
                    wrdSelection.ParagraphFormat.LeftIndent = 0;
 
 
                   ...
 
                    // генерируем таблицу
                    gentable(wrdSelection, colrows + 2, colcells + 1);
                    wrdSelection.Tables[1].Rows.SetLeftIndent(5, WdRulerStyle.wdAdjustNone);
 
                    // Go to the end of the document.
                    Object oConst1 = Word.WdGoToItem.wdGoToLine;
                    Object oConst2 = Word.WdGoToDirection.wdGoToLast;
                    wrdApp.Selection.GoTo(ref oConst1, ref oConst2, ref oMissing, ref oMissing);
 
                    wrdSelection.Font.Size = 12;
 
                    ...
 
                    // генерируем таблицу
                    gentablea(wrdSelection, ...);
 
                    wrdDoc.Saved = true;
 
                    object fileName = System.IO.Directory.GetCurrentDirectory() + "\\tmp\\izv.doc";
                    wrdDoc.SaveAs2(ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                    wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
                    wrdApp.Quit(ref oFalse, ref oMissing, ref oMissing);
 
                    // Release References.
                    wrdSelection = null;
                    wrdMailMerge = null;
                    wrdMergeFields = null;
                    wrdDoc = null;
                    wrdApp = null;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2012, 00:18
Ответы с готовыми решениями:

Запуск MS Word из приложения. Не работает с Office 2003
Здравствуйте. Приложение создано на .NET Framework 3.0 В приложении в ворд добавляется текст и...

Программа с использованием библиотек MS Office 2010 не работает с Office 2003
Есть юзерформа, вызывается кнопкой с листа в ворде. в юзерформе идёт обмен данными с таблицей...

Перевод документа со старого формата xlb 2003 Office
Здравствуйте! Подскажите пожалуйста. Есть документ в формате xlb, весит порядка 40 Мб. Создавался...

Аналог content control в MS Office Word 2003
Доброго времени суток, форумчане! Подскажите, пожалуйста, как можно организовать content control в...

7
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
22.03.2012, 01:36 2
хмм я конечно не специалист в этом, но если работает в 2010 офисе а в 2003 - нет, то может стоить выполнять проэкт используя более раннюю версию фреймворка?
0
273 / 203 / 30
Регистрация: 18.08.2010
Сообщений: 229
22.03.2012, 06:41 3
Нет, дело в том, что версия сборки Microsoft.Office.Iterop.Word старая у пользователей, у которых установлен MS Office 2003. Недавно здесь писал конвертор из DOC в XPS, там таки же проблемы со старой версией данной библиотеки
1
71 / 69 / 19
Регистрация: 13.12.2011
Сообщений: 274
24.03.2012, 14:21  [ТС] 4
Цитата Сообщение от alexsave Посмотреть сообщение
Нет, дело в том, что версия сборки Microsoft.Office.Iterop.Word старая у пользователей, у которых установлен MS Office 2003. Недавно здесь писал конвертор из DOC в XPS, там таки же проблемы со старой версией данной библиотеки
Не решили проблему?
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
24.03.2012, 14:41 5
Цитата Сообщение от SmirnoFF.Oleg Посмотреть сообщение
Не решили проблему?
Просто в своем приложении необходимо вкладывать для пользователей сборку Microsoft.Office.Interop.Word. При установке, она автоматически будет устанавливаться.
0
71 / 69 / 19
Регистрация: 13.12.2011
Сообщений: 274
25.03.2012, 15:43  [ТС] 6
Цитата Сообщение от Nukutu Посмотреть сообщение
Просто в своем приложении необходимо вкладывать для пользователей сборку Microsoft.Office.Interop.Word. При установке, она автоматически будет устанавливаться.
Можно поподробнее, пожалуйста?! Какие от меня действия должны быть?
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
25.03.2012, 19:53 7
Цитата Сообщение от SmirnoFF.Oleg Посмотреть сообщение
Можно поподробнее, пожалуйста?! Какие от меня действия должны быть?
Как уже говорилось, устанавливается версия .dll, соответственно установленного у Вас Microsoft Office. Т.е., если у Вас установлен Microsoft Office 2010, то и версия .dll будет его.
Если же пользователи не имеют установленного Microsoft Office 2010 или выше , то прога будет искать у него соответствующую биббдиотеку, правда безуспешно.
Что надо сделать в решении:
На скринах у меня Ексель, то же самое для Word.
Первый скрин показывает, что надо включить True свойство "Копировать локально".
Второй скрин показывает, что, при включенном True, при публикации через ClickOne необходимая .dll включается (она сама включается, ничего делать не надо) в установочный файл.
Когда пользователь запускает установочный файл, то, если данная .dll у него не установлена, то предлагается установить. Таким образом, если у пользователя даже нелицензионный Microsoft Office 2003, то устанавливается необходимая билиотека с Microsoft Office 2007 (в моем варианте). Если же у Вас Microsoft Office 2010, то будет его библиотека устанавливаться.
Миниатюры
Не работает генерация документа MS Word с установленным MS Office 2003   Не работает генерация документа MS Word с установленным MS Office 2003  
0
71 / 69 / 19
Регистрация: 13.12.2011
Сообщений: 274
26.03.2012, 11:35  [ТС] 8
Цитата Сообщение от Nukutu Посмотреть сообщение
Как уже говорилось, устанавливается версия .dll, соответственно установленного у Вас Microsoft Office. Т.е., если у Вас установлен Microsoft Office 2010, то и версия .dll будет его.
Если же пользователи не имеют установленного Microsoft Office 2010 или выше , то прога будет искать у него соответствующую биббдиотеку, правда безуспешно.
Что надо сделать в решении:
На скринах у меня Ексель, то же самое для Word.
Первый скрин показывает, что надо включить True свойство "Копировать локально".
Второй скрин показывает, что, при включенном True, при публикации через ClickOne необходимая .dll включается (она сама включается, ничего делать не надо) в установочный файл.
Когда пользователь запускает установочный файл, то, если данная .dll у него не установлена, то предлагается установить. Таким образом, если у пользователя даже нелицензионный Microsoft Office 2003, то устанавливается необходимая билиотека с Microsoft Office 2007 (в моем варианте). Если же у Вас Microsoft Office 2010, то будет его библиотека устанавливаться.
Спасибо за подробный ответ, попробуем.
0
26.03.2012, 11:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2012, 11:35
Помогаю со студенческими работами здесь

Соединение Delphi c Microsoft Office Excel - Word 2003
И снова здравствуйте) спасибо ребятам "Санек25 и БогДелфей" за решение предыдущей проблемы, очень...

Печать документа в WORD 2003
Возникла проблема при печати учебной работы в WORD 2003. Один принтер (HP Deskjet D4263) не...

Защита от редактирования части документа в word 2003
Доброго времени суток. Есть ли в word 2003 функция, позволяющая часть документа защитить от...

Постоянная ошибка в word 2003 и восстановление документа
Не могу понять, почему так происходит. Стоит нелицензионный офис. Но раньше никаких проблем не...

Лишний текст в схеме документа. Word 2003
В Word, при составлении схемы документа, в заголовок, попадает целая строка (см. картинку),...

Вставка документа Word 2003 в страницу HTML
Здравствуйте! Хочу вставить в страницу HTML документ Word 2003 без использования дополнительных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru