Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 11.11.2019
Сообщений: 78

Реализация "Сохранить как"

07.03.2022, 10:24. Показов 1582. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заменяю теги в ворде на слова из программы. Сохранял новый файл в папке с программой. Решил сделать сохранение в произвольном месте и что-то не получается.

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
using System;
using System.Collections.Generic;
using System.IO;
using Word = Microsoft.Office.Interop.Word;
 
namespace WChange
{
    class WHelp
    {
        private FileInfo _fileInfo;
 
        public WHelp(string fileName)
        {
            if (File.Exists(fileName))
            {
                _fileInfo = new FileInfo(fileName);
            }
            else
            {
                throw new ArgumentException("File not found");
            }
        }
 
        internal bool Process(Dictionary<string, string> items)
        {
            Word.Application app = null;
            try
            {
                app = new Word.Application();
                Object file = _fileInfo.FullName;
                Object missing = Type.Missing;
                app.Documents.Open(file);
 
                foreach (var item in items)
                {
                    Word.Find find = app.Selection.Find;
                    find.Text = item.Key;
                    find.Replacement.Text = item.Value;
 
                    Object wrap = Word.WdFindWrap.wdFindContinue;
                    Object replace = Word.WdReplace.wdReplaceAll;
 
                    find.Execute(FindText: Type.Missing,
                        MatchCase: false,
                        MatchWholeWord: false,
                        MatchWildcards: false,
                        MatchSoundsLike: missing,
                        MatchAllWordForms: false,
                        Forward: true,
                        Wrap: wrap,
                        Format: false,
                        ReplaceWith: missing, Replace: replace);
                }
 
                Object newFileName = Path.Combine(_fileInfo.DirectoryName, DateTime.Now.ToString("yyyyMMdd HHmmss") + _fileInfo.Name);
                app.ActiveDocument.SaveAs2(newFileName);
                app.ActiveDocument.Close();
 
                return true;
            }
            catch(Exception ex) 
            {
                Console.WriteLine(ex.Message);
            }
            return false;
        }
    }
}
Как пытался изменить сохранение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
                Object newFileName = Path.Combine(_fileInfo.DirectoryName, _fileInfo.Name);
                SaveFileDialog savefile = new SaveFileDialog();
                savefile.DefaultExt = ".doc";
                savefile.Filter = "Test files|*.doc";
                if (savefile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    using (StreamWriter sw = new StreamWriter(savefile.FileName, true))
                    {
                        sw.WriteLine(newFileName);
                        sw.Close();
                    }
                }
                app.ActiveDocument.Close();
 
                return true;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2022, 10:24
Ответы с готовыми решениями:

Реализация закладок в книге. Как сохранить закладку (flowDoumentReader)
Вообщем заканчиваю писать читалку под fb2. Осталось реализовать закладки. Закладка текущей страницы замечательно создается таким...

Реализация команд меню "Создать", "Сохранить", "Сохранить как ..."
Здравствуйте! Пытаюсь работать в windows forms. Cуть программы такова : пользователь открывает (используя стандартное меню объекта...

Реализация Функции "Сохранить Как"
Возьмём простой блокнот, или Word, После того как мы закончили писать Документ мы можем нажать кнопку (Сохранить как) и выбрать папку куда...

2
fly
 Аватар для I can
4955 / 4646 / 844
Регистрация: 13.04.2015
Сообщений: 9,841
07.03.2022, 11:40
Лучший ответ Сообщение было отмечено lockyface как решение

Решение

Цитата Сообщение от lockyface Посмотреть сообщение
using (StreamWriter sw = new StreamWriter(savefile.FileName, true))
Так не прокатит.
Нужно передавать выбранное имя в функцию сохранения ворда.

Добавлено через 2 минуты
То есть, примерно так
C#
1
2
3
4
5
6
7
8
                SaveFileDialog savefile = new SaveFileDialog();
                savefile.DefaultExt = ".doc";
                savefile.Filter = "Test files|*.doc";
                if (savefile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                     app.ActiveDocument.SaveAs2(savefile.FileName);
                }
                app.ActiveDocument.Close();
1
1 / 1 / 0
Регистрация: 11.11.2019
Сообщений: 78
07.03.2022, 16:40  [ТС]
I can, Спасибо, но хочу ещё спросить. Как быть с excel?

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
using System;
using Excel = Microsoft.Office.Interop.Excel;
using System.IO;
 
namespace WChange
{
    class EHelp : IDisposable
    {
        private Excel.Application _excel;
        private Excel.Workbook _workbook;
        private string _filePath;
 
        public EHelp()
        {
            _excel = new Excel.Application();
        }
 
        internal bool Open(string filePath)
        {
            try
            {
                if (File.Exists(filePath))
                {
                    _workbook = _excel.Workbooks.Open(filePath);
                }
                else
                {
                    _workbook = _excel.Workbooks.Add();
                    _filePath = filePath;
                }
 
                return true;
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
            return false;
        }
 
        internal void Save()
        {
            if (!string.IsNullOrEmpty(_filePath))
            {
                _workbook.SaveAs(_filePath);
                _filePath = null;
            }
            else
            {
                _workbook.Save();
            }
        }
 
        internal bool Set(string column, int row, object data)
        {
            try
            {
                ((Excel.Worksheet)_excel.ActiveSheet).Cells[row, column] = data;
                return true;
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
            return false;
        }
 
        internal object Get(string column, int row)
        {
            try
            {
                return ((Excel.Worksheet)_excel.ActiveSheet).Cells[row, column].Value2;
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
            return null;
        }
 
        public void Dispose()
        {
            try
            {
                _workbook.Close();
                _excel.Quit();
            }
            catch (Exception ex) { Console.WriteLine(ex.Message); }
        }
    }
}
Добавлено через 4 часа 26 минут
Сделал аналогично, работает:
C#
1
2
3
4
5
6
7
8
9
10
        internal void Save()
        {
            SaveFileDialog savefile = new SaveFileDialog();
            savefile.DefaultExt = ".xls";
            savefile.Filter = "Test files|*.xls";
            if (savefile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                _workbook.SaveAs(savefile.FileName);
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2022, 16:40
Помогаю со студенческими работами здесь

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

bios v.3.0 не могу сохранить intel(r)speed step(tm) tech все остальное сохраняется как сохранить?
люди помогите! у меня bios v.3.0 все сохраняется кроме intel(r) speed step(tm)tech как сохранить?

bios v.3.0 не могу сохранить intel(r)speed step(tm) tech все остальное сохраняется как сохранить?
bios v.3.0 не могу сохранить intel(r)speed step(tm) tech все остальное сохраняется как сохранить?

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

Как сделать кнопку 'Сохранить', а не 'Сохранить как'?
как сделать кнопку сохранить а не сохранить как unit Unit8; interface uses Windows, Messages, SysUtils, Variants, Classes,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru