c# - это просто. Работа с Word файлом через Interop.Word. Замена слов в шаблоне
Вставка
- Опубліковано 26 лип 2024
- Visual Studio c#. Подробная инструкция по реализации работы с Word файлом через механизм Interop. Использование Microsoft.Office.Interop.Word
VK - public199628606
FaceBook - / 358572395391013
Разрабатываю приложение в Visual на диплом, огромное количество времени убила, пока не нашла ваше видео. Спасибо огромное! Не забрасывайте канал, продолжайте этим заниматься, если вам это нравится. Вы помогаете большому количеству людей, спасибо ещё раз
Удачи!
то же самое
Огромное спасибо за видео! Я учусь на 2 курсе в университете на программиста. Мне очень сильно помог Ваш ролик при написании курсовой работы :)
Удачи!
@@user-hn5km9bo2e Прекрасный контент, а планируется ли видео по работе с изображениями в Word?
Спасибо за видео. Так получилось, что нелёгкая занесла меня с половины первого курса прямиком в рабочий проект. Знаний нет, опыта тоже. А задачи стоят большие и сроки горят. Так и учу C# с горящей пятой точкой через подобные видео. Ваше видео сэкономило мне, наверное, часов 10)
Большое спасибо! Очень помогли с реализацией отчета) Всё чётко и по делу
Спасибо и удачи!
Круто! Спасибо.
Только начал смотреть Ваш канал, но я уже впечатлен.
Я любитель в этом деле, но Ваши ролики вызывают интерес к программированию.
Интересно сделать программу которая пригодится в реальной жизни. (Вместо калькулятора)
Спасибо. Вы классный 👍
Спасибо!
Удачи в достижении цели!
Отлично, приятно смотреть и слушать. Все четко, все по делу. Можно было бы поставить 1000 лайков, поставил бы.
Спасибо и удачи!
Огромное спасибо!!!!!!!! реально полезный контент...........
Классная серия работы с документами
Спасибо!
Спасибо большое, дали идею для создания программ.
Удачи!
Будут вопросы - задавайте
Благодарю вас за ваш труд.
Спасибо за поддержку!
Удачи!
Отличный урок, спасибо большое!
Спасибо и Вам!
Удачи в Новом году!
Очень полезное видео, спасибо!
Очень приятно! Удачи!
Me costo entender tu video porque hablo otro idioma, pero despacio y con esfuerzo logre superar la barrera del lenguaje y entender.
Te doy las gracias, me has ayudado muchisimo.
c# es internacional. Buena suerte!
Информативно и понятно. Спасибо
Спасибо!
Смотрю и благодарю!!!
Спасибо большое!!! Интересно попробовать работать с документами.
Надеюсь что ролик был полезен
@@user-hn5km9bo2e Конечно полезен.
Спасибо, очень помог с курсовой работой. Ребят, если вы столкнулись с проблемой, что у вас нет директории "Word", то это значит, что у вас нет ворда на компьютере. Устанавливаете ворд и директория появляется.
Вдруг кто-то еще сюда с такой проблемой попадет - Просто кликните в Обозревателе решений пкм на Ссылки - Добавить ссылку и добавьте Microsoft word 16.0 Object Library, у меня было только такое и оно сработало)
Большое спасибо, очень помогли!
Спасибо!
Удачи!
Огромное спасибо!
Хорошее видео,спасибо
Спасибо!
Удачи!
"Туда-сюда, обратно - тебе и мне приятно..."
:)
Спасибо😀
Nice !!!
тройной лайк :))
Удачи!
Спасибо за видео! Подскажите, а аналогичный урок, но с Excel шаблонами, есть? Что-то типа экспорта из ListView в Excel с форматированием таблицы.
Надо подумать. Но самый простой способ экспорта в Excel - в формате CSV
Есть ли примеры как из базы данных ексель, перенести значения в шаблон ворда? Например "генератор поздравлений". Есть шаблон открытки, где букмарками указаны места (пропуски) в которые нужно рандомно вставить поздравления из ексель (заранее прописанные).
Отличное видео, мне понравилось, пробовал с разными форматами, даже рисовал фигуры, но у меня не как не получается вставить изображение (скажем фотографию или изображение в портфолио на место какого то тега типа ). Может будет видео для работы с изображением? А так все получилось. Спасибо за Ваши труды.
Спасибо за поддержку! Удачи!
Насчёт картинок надо подумать
Спасибо
Удачи!
Добрый день. Видео очень интересное, спасибо. Подскажите что по вашему мнению предпочтительнее использовать в документе для замены: теги или метки и почему. И второй вопрос. Как сформировать сразу несколько однотипных бланков в одном документе на отдельных листах с разными данными?
Хороший вопрос
@@user-hn5km9bo2e Есть ответ?
@@Neo_for_my_chanel4782 если по поводу однотипных бланков в одном документе, то делаете также шаблон на несколько бланков и заменяете в них данные по одному - находите первый тэг (#name например) - заменяете, переходим ко второму в списке - находим первый тэг #name (он уже во втором бланке, поскольку первый мы уже заменили) и т.д.
Единственное условие - тег должен в бланке должен присутствовать только один раз. Ну то есть, если вам будет нужно разместить в бланке имя несколько раз, то надо будет тэги называть по разному (#name1, #name2, ...)
@@Neo_for_my_chanel4782 если по поводу "теги или метки", то тут на вкус и цвет - лишь бы они в обычном текте не присутствовали. Если у вас текст на русском, то любые символы латиницей подойдут.
Спасибо за роли! Скажите, пользуетесь ли сервисами или библиотеками для склонения имен существительных, и какими?
Нет, не доводилось
Большое спасибо за видео! а можно ли в word заполнить таблицу используя шаблон?Если да, то как?
Супер! А можете сделать туториал как можно читать данные из готового заявления и использовать дальше в программе? В готовых заявлениях нет тегов. И есть ли разница при работе с doc и docx? Если да, то хотелось бы увидеть оба варианта использования, заранее спасибо!
Разницы по работе с .doc / .docx сейчас нет.
Получите, распишитесь :)
ua-cam.com/video/yX_IADLq_T0/v-deo.html
@@user-hn5km9bo2e Большое спасибо! Очень приятно что вы делаете туториалы по просьбам подписчиков.
Здравствуйте, подскажите пожалуйста, у меня office 2021. Как в word doc состоящий из двух страниц разделить на 2 документа и как удалить одну из страниц?
Лайк
Ура! :)
Можно урок по написанию программы с интерфейсом по работе со сложными шаблонами,где нужна замена слов,предложений, цифр, и рисование графика по координатам ?
Ураа
Надеюсь, что в тему :)
Спасибо за мастер класс.
1) Почему нельзя использовать блок using для автоматического удаления аппликации сборщиком мусора?
2) Как сделать тоже самое, но не парсингом документа, а с использованием автозаменяемых полей?
3) По идее Interop.Word работает с документом docx, вот интересно с офисом Р-7 также будет работать?
Заранее спасибо.
Видео оказалось таким полезным!! Очень помогли в написании курсовой!) Спасибо вам огромное!!))
Но возник следующий вопрос, как можно сделать так, чтобы по нажатию этой кнопки открывался этот ворд-документ с уже соответствующими изменениями?
В коде добавьте
System.Diagnostics.Process.Start(file);
где file - путь к готовому файлу. Так можно с любым файлом делать, система сама разберётся как открыть.
@@user-hn5km9bo2e пишет, что файл найден но "us not a valid application for this OS platform" хотя моя операционка не причем и вручную файл запускается без всяких проблем
Спасибо большое за информацию ;)??? Интересно можно выводить в print preview ????
Интересно можно выводить в print preview ????
@@guggia Если ещё интересно, посмотрите в Git - выложил версию с превью. На ролик там маловато. Посмотрите, что я поменял и сделайте у себя так же.
Добрый день! А можно ли вставить картинку в ворд через тег?
Здравствуйте, очень полезное видео, спасибо большое!
Если вам не сложно Подскажите пожалуйста, можно ли как-то только что созданный документ отправить сразу на печать?
Спасибо за отзыв!
Конечно можно - Вы же работаете с MS Word
Описание тут
stackoverflow.com/questions/11126065/how-to-print-a-docx-to-a-specific-printer-using-microsoft-office-interop-word-do
или тут
docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-print-documents?view=vs-2019
там, насколько помню, есть проблема с выбором принтера, но на дефолтный - без проблем
@@user-hn5km9bo2e спасибо большое, но только не совсем понятно как это использовать в коде, который мы написали по этому видео.
@@user-hn5km9bo2e Подскажите, мы эту конструкцию куда должны вставить?
Спасибо, то что нужно! А как запустить свежесозданный файл автоматически?
Посмотрите в Git. Я выложил код с изменениями в этом проекте для показа Print Preview. Посмотрите какие изменения были сделаны - там не сложно.
Огромное спасибо за ролик, очень сильно он помог и до сих по актуален, но единственное не могу понять как сделать так что бы файл word открывался в конце. В get видел, но без визуализации ничего не понятно, особенно что такое chkShowPreview (откуда он берется? что это?) Я забирал просто значения из текст боксов и не рисовал таблицу, если бы было видео или хотя бы подскажите в комментариях, спасибо)
поробуйте взять код из Git , может так проще будет. Ссылка в описании канала
Здравствуйте, спасибо за видео!!! Только вот столкнулся с такой проблемой, что меняются все значения, кроме даты(и DATA и DATA_FROM). Код переписал один в один. Не подскажите, в чем может быть проблема?
Попробуйте взять из гита. Ссылка в описании канала
Все компилирует хорошо, но при запуске приложения вадает: "Невозможно привести COM-объект типа "Microsoft.Office.Interop.Word.ApplicationClass" к интерфейсному типу "Microsoft.Office.Interop.Word._Application"."
Может я гдето накосячил или просто чтото не установлено?
Не пробовали текст ошибки в Гугл отправить? Обычно там быстро находятся
Ля, тупо лайк, очень полезное видео, использовал эту фишку на дипломе. Единственное не понятно, что делать с форматом текста? типо как шрифт настраивать и так далее?
В самом шаблоне
Огромное спасибо за видео, но не могли бы вы пожалуйста подсказать, как сделать чтобы файл копировал себя при работе? Потому что я сделал так, чтобы пользователь сам мог выбирать путь сохранения файла, и он его не копирует, а только изменяет. В настройках выставлял так же "copy if newer"
На 22:00 описано, только свой путь к файлу надо подставить
Здравствуйте, создал вторую форму, чтобы можно было переключаться между двумя документами. Столкнулся с ошибкой "элемент с тем же ключом уже используется". Я так понимаю дело в Dictionary. Подскажите как правильно сделать.
Такой вопрос, почему у меня не формируется word-документ, если в одном из textboxов символов больше 255? Как повысить лимит?
Что-топохожее на это?
stackoverflow.com/questions/13040609/fill-in-word-form-field-with-more-than-255-characters
@@user-hn5km9bo2e Да, спасибо. То, что нужно)
Здравствуйте, хотел бы у вас спросить, а как можно сделать что бы пользователь мог сам выбрать (путь) куда он хочет сохранить файл? Заранее спасибо!
Можно использовать SaveFileDialog
docs.microsoft.com/en-us/dotnet/api/system.windows.forms.savefiledialog?view=netframework-4.5.2
@@user-hn5km9bo2e Спасибо, получилось! Видео просто супер, спасибо вам)
@@flaskk1 Куда это надо вставить?
@@alexborisow4834 Я реализовал что бы просто файл открывался, а дальше я его просто через сам ворд сохраняю куда хочу
@@user-hn5km9bo2e А Куда это надо вставить?
Как работать с колонтитулами? Там тест не меняется.
Подскажите, может кто-то сталкивался. Вылетает ошибка "System.AccessViolationException: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." На строчку "find.Text = item.Key;".
Скорее всего файл открыт в режиме readonly
Добрый день! Подскажите, пожалуйста. Почему-то вордовский файл заполняется данными из Dictionary первого запуска программы. После менял значения элементов Dictionary , а выводятся все равно старые данные. В чем может быть дело? Спасибо.
Шаблон и результат - разные файлы?
Здравствуйте, создал вторую форму, чтобы можно было переключаться между двумя документами. Столкнулся с ошибкой "элемент с тем же ключом уже используется". Я так понимаю дело в Dictionary. Подскажите, как правильно исправить.
СПА-СИ-БО!!!
Здравствуйте! Подскажите пожалуйста, для того что бы программа работала с более ранними версиями Word, нужно поменять библиотеку word на более старую?
Скорее всего. Надо пробовать. Хотя должно работать и с новыми версиями
Не работает на 7 винде почему то, причем на некоторых работает, а на других нет@@user-hn5km9bo2e
👍👍👍
Здравствуйте, помогите пожалуйста, как сделать чтобы файл шаблона был внутри программы (внутри EXE-шника), чтобы на выходе был только файл программа.exe без шаблона, чтобы можно было в любом месте на компьютере генерировать файлы
Запихнуть в Resources
Здравствуйте, очень хорошее видео, довольно внятно объясняете суть происходящего. Сейчас я делаю небольшой проект, вот тоже хочу поработать с вордом. Задумка такова, что у меня есть написанный вордовский файл и я просто должен его открыть, используя кнопки в окне. Все сделал, написал, но получается так, что открывается абсолютно пустой вордовский файл. С чем это может быть связано? Описываю я это дело на плюсах, но разница, насколько я знаю, невелика.
namespace Word = Microsoft::Office::Interop::Word;
...
auto wordApp = gcnew Word::Application();
Object^ file = "D:test.docx";
wordApp->Visible = true;
wordApp->Documents->Open(file);
С плюсами не очень:(
Что делать, если после нажатия на кнопку, создается новый документ, якобы с другими значенрями, но там не значения с текстбоксов, а просто ?
Здравствуйте, можно спросить как вставить datatable. На 20:44 при присваивании item.Value жалуется на не удается преобоазовать system.datatable в string
Не уверен что это можно. Надо гуглить:). К сожалению полным спецом в этом вопросе не являюсь.
@@user-hn5km9bo2e сделал еще один dictionary, только вместо string в dictionary сделал datatable, с остальным помог chatgpt, получилось что метод считывает строку из datatable и ее печатает, правда не в виде таблицы, но и так нормально, спасибо вам за видео!
все сделал как на видео, но почему то попадаю на исключение "File not found!", название файла все проверил все правильно....
Файл в папке bin/Debug есть?
Свойства файла .docx в проекте поменяли? Он копируется в исполняемую директорию?
Как сделать так что бы по нажатию по кнопке, открывался свежесозданный документ?
System.Diagnostics.Process.Start(путь к файлу)
Пишу по памяти, могут быть несовпадения
Как можно реализовать функцию, чтобы после записи данных, фаил открылся в ворде сам по себе ?)
System.Diagnostics.Process.Start()
Я понимаю, что видео уже год. Но, может повезет. С текстом все понятно, а как быть с иным содержимым, картинками, графиками и т. д.?
Не занимался. Надо документацию смотреть
Добрый день, делаю приложение в wpf, подскажите пожалуйста, почему у меня Application подчеркивает красным?
Честно говоря не понял, о чём вопрос? Вы пытаетесь повторить код и на какой минуте перенос кода в WPF не работает?
А в WPF точно такая же библиотека есть?
Это больше заваисит от того какой офис установлен
Добрый день. Спасибо за урок. Подскажите как сделать чтоб в этот документ можно было сделать выбор разных вариантов абзаца с разным по смыслу, но с одними и теми же значениями. Допустим:
Прошу принять меня на должность программиста
Прошу уволить по собственному желанию
Прошу предоставить отпуск
Прошу предоставить больничный ну и т.д.
Сделайте разные шаблоны и добавьте дропдоун с выбором типа шаблона
@@user-hn5km9bo2e как это "добавьте дропдоун с выбором типа шаблона"? я не понимаю это как китайский язык)))
Добрый день, а можно ли сделать сохранение нового документа на рабочий стол? Если да, подскажите как пожалуйста.
Без проблем
22:11 указываете путь к новому файлу
@@user-hn5km9bo2e Спасибо за ответ, я имею ввиду сохранение файла при использовании программы на другом пк
@@user-hn5km9bo2eкак правильно записать путь к нужной папке?
Уважаемый, а можно ли сделать относительный путь к файлу? Что бы ,например, программа работала на другом пк?
Немного не понял :) - что значит на другом ПК? Файл находился на другом компе?
@@user-hn5km9bo2e Я имею ввиду, следующее: Мы используем копию программы, вместе с файлом, на другом компьютере. Есть необходимость сделать так, что бы не пришлось прописывать путь до файла.docx персонально для каждого устройства
@@user-hn5km9bo2e Можете пожалуйста направить), не могу понять как это сделать
@@mahmudazujan5544 прописывать какой путь? К файлу-шаблону или результату?
@@user-hn5km9bo2e к файлу шаблону
Есть ли какие нибудь особенности переноса программы на другой компьютер? Я пытаюсь скопировать программу через носитель на другой компьютер, но после нажатия кнопки изменить файл на новом компьютере, ничего не происходит, новый файл не появляется. Как откорректировать программу так, что бы программа создавала новый файл, при использовании на другом компьютере?
Там собственно Word есть?
@@user-hn5km9bo2e Уважаемый, спасибо большое, был онлайн ворд только.
А как сделать теги в ворде для этого всего?
Просто заполняете Word документ и в нем вставляете любые нестандартные символы
их потом и заменяем
@@user-hn5km9bo2e попробовал. В итоге не заполняет. Шарп не видит их
@@Carbonashka почему бы не взять из Git файл и попробовать с ним?
@@Carbonashka а копи/пасте из Word в код пробовали?
@@user-hn5km9bo2e да
Как вы думаете, почему программа может не запускаться на других компьютерах? У меня она не запускается на некоторых семерках, на 10 пока на всех запускается
Там есть Word?
Да, есть@@user-hn5km9bo2e
Было бы значительно информативнее, если бы исходники кода каждого урока были доступны для скачивания.
Они в Гит. Ссылка в описании канала
Так как Вы достаточно просто рассказываете, рекомендую ссылку на гит по проекту добавлять под каждым видео, так и зрителям будет проще =)
Пытаюсь в программе реализовать создание сразу 5 документов с разными значениями полей OKO, на данном этапе программа выводит только выбранный элемент. Как сделать что бы программа создавала документ с разными значениями поля?
{"", textBox3.Text},
{"",dateTimePicker1.Value.ToString("dd.MM.yyyy")},
{"", comboBox1.Text}
};
for (int i = 0; i < 5; i++)
{
comboBox1.Text=comboBox1.Items[i].ToString();
helper.Process(items);
}
Решил. Цикл надо поместить в начало :DDDDD . Спасибо за внимание!)
for (int i = 0; i < 5; i++)
{
var items = new Dictionary
{
У самого часто так бывает. Иногда пока задаёшь вопрос, приходит ответ.
Удачи!
@@user-hn5km9bo2e Спасибо, взаимно!
Мог бы хотя бы текст оставить который вставляешь а то переписывать тяжеловато)
Выложен в гит
В профиле есть ссылка
А можт проще ваще формировать док с 0, а не заменять там теги?
Я вот так делаю мне так проще как-то.
шаблон можно менять пользователем программы, не меняя самой программы
анчор итем
Здравствуйте! Помогите, пожалуйста при попытке поиска текста через:
private void SearchReplace()
{
Word.Find findObject = Application.Selection.Find;
findObject.ClearFormatting();
findObject.Text = "find me";
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = "Found";
object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
Выскакивает ошибка:
System.AccessViolationException: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."
Мне казалось, что уже отвечал, может не Вам.
Файл скорее всего открыт read-only. Надо посмотреть как открывается документ
Помогите пожалуйста: Вызвано исключение: "System.Runtime.InteropServices.COMException" в WindowsFormsApp1.exe
Слишком длинный строковый параметр.
Из-за этого файл не сохраняет, но если открыть документ все параметры вставляются успешно
В ткаих случаях лучше закинуть ошибку в Google и поискать
@@user-hn5km9bo2e пытался, помню что только на 2-3 день нашел😅
@@Xmypblu_KoT а можете объяснить как решили проблему,я тоже столкнулся такой проблемой
@@alibabayev6408 мне на киберфоруме подсказали, попробкй поищи, суть в том что данные с текстбокса сначала копируются в буфер а в ворд заносятся из буфера, в буфер неограниченное число символов можно вставить
@@Xmypblu_KoT я пакет не скачал,из за этого exception кидал,потом исправил😅
Привет. Как сделать чтобы этот файл сразу открывался?
System.Diagnostics.Process.Start(путь к файлу)