Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 131
1

Сохранить программно созданный документ Word

25.06.2018, 23:04. Просмотров 1407. Ответов 3

Здравствуйте, не получается сохранить документ MS Word.
Вот что есть:
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
92
93
94
95
96
97
98
99
100
        object objMissing = System.Reflection.Missing.Value;
        object objEndofDocument = "\\endofdoc";
        Microsoft.Office.Interop.Word._Application appobj;
        Microsoft.Office.Interop.Word.Document docobj;
        Microsoft.Office.Interop.Word.Table tableObj;
//здесь документ заполняется и выводится в таблицу.
private void печатьToolStripMenuItem_Click(object sender, EventArgs e)
        {
                appobj = new Microsoft.Office.Interop.Word.Application();
                appobj.Visible = true;
                docobj = appobj.Documents.Add(ref objMissing, ref objMissing, ref objMissing, ref objMissing);
                Microsoft.Office.Interop.Word.Range rangeObj = docobj.Bookmarks.get_Item(ref objEndofDocument).Range;
                tableObj = docobj.Tables.Add(rangeObj, g+1, 3, ref objMissing, ref objMissing);
                tableObj.Range.ParagraphFormat.SpaceAfter = 8;
                    for (int j = 0; j <= 3; j++)
                    {
                        if (j == 1)
                        {
                            tableObj.Cell(0, j).Range.Text = "Подача";
                        }
                        if (j == 2)
                        {
                            tableObj.Cell(0, j).Range.Text = "Радиус";
                        }
                        if (j == 3)
                        {
                            tableObj.Cell(0, j).Range.Text = "Диаметр";
                        }
                    }
                    int count = 0;
                    for(int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i+1, 1).Range.Text = (rezec * count).ToString();
                    count++;
                    }
                    for (int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i+1, 2).Range.Text = (Math.Round(mas[i-1], 3)).ToString();
                    }
                    for (int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i+1, 3).Range.Text = (Math.Round(mas[i-1], 3)*2).ToString();
                    }
 
                tableObj.Rows[1].Range.Font.Bold = 1;
                tableObj.Borders.Enable = 1;
        }
 
//здесь документ тоже заполняется и он должен сохраниться с помощью SaveFileDialog
 private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
                SaveFileDialog save = new SaveFileDialog();
                save.DefaultExt = ".doc";
                save.Filter = "Текстовые файлы | *.doc";
                save.AddExtension = true;
                save.Title = "Сохранение файла";
                if (save.ShowDialog() == DialogResult.OK)
                {
                    object saves = "C:\\Users\\Виталий\\Desktop\\rez.doc";
                    appobj = new Microsoft.Office.Interop.Word.Application();
                    appobj.Visible = true;
                    docobj = appobj.Documents.Add(ref objMissing, ref objMissing, ref objMissing, ref objMissing);
                    Microsoft.Office.Interop.Word.Range rangeObj = docobj.Bookmarks.get_Item(ref objEndofDocument).Range;
                    tableObj = docobj.Tables.Add(rangeObj, g + 1, 3, ref objMissing, ref objMissing);
                    tableObj.Range.ParagraphFormat.SpaceAfter = 8;
                    for (int j = 0; j <= 3; j++)
                    {
                        if (j == 1)
                        {
                            tableObj.Cell(0, j).Range.Text = "Подача";
                        }
                        if (j == 2)
                        {
                            tableObj.Cell(0, j).Range.Text = "Радиус";
                        }
                        if (j == 3)
                        {
                            tableObj.Cell(0, j).Range.Text = "Диаметр";
                        }
                    }
                    int count = 0;
                    for (int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i + 1, 1).Range.Text = (rezec * count).ToString();
                        count++;
                    }
                    for (int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i + 1, 2).Range.Text = (Math.Round(mas[i - 1], 3)).ToString();
                    }
                    for (int i = 1; i <= g; i++)
                    {
                        tableObj.Cell(i + 1, 3).Range.Text = (Math.Round(mas[i - 1], 3) * 2).ToString();
                    }
 
                    tableObj.Rows[1].Range.Font.Bold = 1;
                    tableObj.Borders.Enable = 1;
                    appobj.Documents.Save(ref saves, ref objMissing);
             }
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2018, 23:04
Ответы с готовыми решениями:

Как сохранить созданный файл Word без появления диалогового окна
При сохранении документа вылезает окно выбора названия и места сохранения файла. Можно ли сделать...

Как сохранить данные из TreeView в Word документ?
Как сохранить данные из TreeView в Word документ?

Сохранить DataTable в документ Word или html
Народ, у меня есть таблица DataTable как мне ее запхать в .doc или .htm Документ, нужно срочно, до...

Открыть программно созданный документ
Написал обработку по вводу платежек и выписки на основании доков на поступление ТМЦ. После записи...

3
900 / 787 / 327
Регистрация: 08.02.2014
Сообщений: 2,384
26.06.2018, 10:01 2
Цитата Сообщение от Vitoster98 Посмотреть сообщение
Здравствуйте, не получается сохранить документ MS Word.
а нам дальше ванговать что не получается? описывайте что происходит, ошибка, или не сохраняется вообще, или ещё что-либо.
0
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 131
26.06.2018, 10:43  [ТС] 3
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
ошибка
Вот ошибка: System.Runtime.InteropServices .COMException: "Несовпадение типов. (Исключение из HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))"

потом ещё: Возникло исключение
Дополнительные сведения можно найти в файле C:\Users\...\AppData\Roaming\M icrosoft\VisualStudio\15.0_38e 591cb\ActivityLog.xml
0
900 / 787 / 327
Регистрация: 08.02.2014
Сообщений: 2,384
26.06.2018, 11:07 4
Лучший ответ Сообщение было отмечено Vitoster98 как решение

Решение

1) Попробуйте убрать параметры сохранения (тогда ворд должен выдать окно с запросом на сохранение вроде как)
2) 1 параметр метода должен быть true либо false
3) 2 параметр должен быть типа WdOriginalFormat
4) Используйте SaveAs если надо указывать имя файла и прочее

Добавлено через 51 секунду
p.s описание Вашего метода: https://msdn.microsoft.com/ru-ru/lib...ents.save.aspx
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2018, 11:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программно сохранить документ с программно созданными реквизитами
Помогите кто знает как сохранить в Управляемом приложении (Управляемая Форма) документ с программно...

Не могу сохранить документ Word
Имеется программа состоящая из главной и дочерней формы. В дочерней форме таблица. Следует...

Хочу сохранить документ Word
есть такая ссылка в кэше Гугла. Как мне с нее достать и сохранить документ Ворд?

Из Ms Access открыть и сохранить документ Word
Добрый день! Задача заключается в том, чтобы в форме Access при нажатии на кнопку создавался...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.