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

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

25.06.2018, 23:04. Просмотров 891. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2018, 23:04
Ответы с готовыми решениями:

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

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

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

Нажатие на программно созданный PictureBox
На панель pnlPlayground помещается PictureBox. Никак не могу обработать нажатие на это изображение....

Как удалить программно созданный TextBox()
По нажатию кнопки создаю текстовое поле, а вот как удалить какое то конкретно в середине созданное...

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

потом ещё: Возникло исключение
Дополнительные сведения можно найти в файле C:\Users\...\AppData\Roaming\Microsoft\VisualStudio\15.0_38e591cb\ActivityLog.xml
0
SeIZVeIZ
783 / 698 / 298
Регистрация: 08.02.2014
Сообщений: 2,135
Завершенные тесты: 3
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
26.06.2018, 11:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2018, 11:07

Нужно добавить программно созданный PictureBox в контролы
Всем привет. Задача такая: нужно добавить программно созданный PictureBox в контролы. Собственно,...

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

Текстовый редактор: как сохранить (не "сохранить как") открытый документ
private void сохранитькакToolStripMenuItem_Click(object sender, EventArgs e) { ...


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

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

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