Экспорт таблицы из Excel в Word файл
Microsoft.Office.Interop.Excel и Microsoft.Office.Interop.Word Добавь их в проект через NuGet и будет тебе счастье.
using Word = Microsoft.Office.Interop.Word; Word.Application wdapp = new Word.Application(); Word.Document wddoc = wdapp.Documents.Add(); string xlSheetPath = @"D:\\New\\1.xlsx"; \\ **Путь к файлу Excel** string ext = xlSheetPath.Substring(xlSheetPath.LastIndexOf("."), xlSheetPath.Length - xlSheetPath.LastIndexOf(".")); int xlVersion = (xlSheetPath.Substring(xlSheetPath.LastIndexOf("."), xlSheetPath.Length - xlSheetPath.LastIndexOf(".")) == ".xls") ? 8 : 12; wdapp.Selection.Fields.Add(wdapp.Selection.Range, Word.WdFieldType.wdFieldLink, "Excel.Sheet." + xlVersion.ToString() + " " + xlSheetPath + " Лист1!R1C1:R13C5 \\a \\f 5 \\h", true); \\ **Выбор нужного диапазона для переноса** wdapp.Visible = true;
Отслеживать
ответ дан 8 ноя 2017 в 7:28
359 2 2 серебряных знака 15 15 бронзовых знаков
Уже добавлял. Вообще пробовал по вот этому методу. Но так и не понял, как его реализовать. cyberforum.ru/windows-forms/thread809561.html
8 ноя 2017 в 7:38
«Приложению Word не удалось создать связи с указанным объектом. Вставьте объект непосредственно в файл без использования связи.» А в самом word документе написано «Ошибка! Ошибка связи.» Диапазон брал вот такой (A1G1:A290G290 я же правильно его указал? Мне нужно от А1 до G290.)
8 ноя 2017 в 8:30
Furianec Переведите в R1C1 формат, в коде указано, что интексаторы ячеек только в таком формате
8 ноя 2017 в 9:01
В общем так и не получилось сделать как у вас. Не понимаю, что с этой строчкой не так. wdapp.Selection.Fields.Add(wdapp.Selection.Range, Word.WdFieldType.wdFieldLink, «Excel.Sheet.» + xlVersion.ToString() + » » + xlSheetPath + » Лист1!R1C1:R13C5 \\a \\f 5 \\h», true); \\ Выбор нужного диапазона для переноса
9 ноя 2017 в 6:01
@Furianec На пальцах: R1C1 — Row 1, Column 1 (это A1) : R13C5 — Row 13, Column 5 (это E13), все что в пределах этого диапазона — экспортируется в другой файл.
9 ноя 2017 в 7:33
Word.Application wdapp = new Word.Application(); Word.Document wddoc = wdapp.Documents.Add(); string xlSheetPath = textBox1.Text; string ext = xlSheetPath.Substring(xlSheetPath.LastIndexOf("."), xlSheetPath.Length - xlSheetPath.LastIndexOf(".")); int xlVersion = (xlSheetPath.Substring(xlSheetPath.LastIndexOf("."), xlSheetPath.Length - xlSheetPath.LastIndexOf(".")) == ".xls") ? 8 : 12; Microsoft.Office.Interop.Excel._Application xlApp = new Excel.Application(); xlApp.Visible = true; Excel.Workbook workbook = xlApp.Workbooks.Open(xlSheetPath); Excel.Worksheet worksheet = workbook.Sheets[1]; Word._Application wdApp = new Word.Application(); wdApp.Visible = true; Word.Document document = wdApp.Documents.Add(); document.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape; worksheet.Range["A1", "G6"].Copy(); document.Range().PasteSpecial(); workbook.Close(); xlApp.Quit();
Но теперь не понимаю, как сделать, что бы текст с других столбцов переезжал на другую страницу, если хотя бы в 1 столбце текст не влезал на страницу. Может кто подсказать, как это реализовать?
Отслеживать
ответ дан 9 ноя 2017 в 6:04
83 1 1 серебряный знак 7 7 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как экспортировать excel в word
Основные принципы:
1) Текст, содержащийся в соседних ячейках в пределах одной строки, при экспорте в Word разделяется пробелом.
2) Текст, содержащийся на разных строках Листа Excel, считается отдельным абзацем.
3) Таблица экспортируются в виде таблицы, только в том случае если ее границы имеют четкие очертания.
Видео по работе с надстройкой
Порядок вывода комментариев:

0
Спам
![]()
8 Кристина Красникова • 20:56, 29.01.2020
Спасибо большое, отлично работает. Таблицы экспортируются с форматированием и без ошибок.
0
Спам
![]()
5 Gennadiy • 08:47, 22.06.2017
Можно ли самостоятельно редактировать надстройку?
0 ![]()
![]()
6 Kre4et • 19:23, 03.07.2017
Если Вы разбираетесь в VBA, то можете редактировать надстройку без особых проблем.
0
Спам
![]()
7 apfu • 08:51, 23.07.2019
подскажите пожалуйста пароль для проекта VBA
0
Спам
![]()
3 Vihtor • 14:29, 11.10.2014
Начинаю заполнять паспорт отходов, а процесс не идет, не пойму. Два дня назад все работало?? ((
0 ![]()
![]()
4 Kre4et • 19:32, 12.10.2014
Поясните. Вы пытаетесь сделать экспорт из Excel в Word? Или же вы используете форму заполнения паспорта опасного отхода?
-1
Спам
покупка
Для пользователей Excel вставка комментариев в ячейки — обычная задача, иногда вам нужно скопировать и вставить эти комментарии в документ Word для какой-то цели. Конечно, вы можете копировать и вставлять комментарий в Word один за другим, но это утомительная и трудоемкая работа. Есть ли способ экспортировать сразу все комментарии из Excel в Word?
Экспорт комментариев из текущего листа в Word с кодом VBA
К сожалению, в Excel нет возможности копировать и вставлять сразу все комментарии в Word. Однако с помощью следующего кода VBA вы можете быстро экспортировать все комментарии активного рабочего листа в документ Word.
1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: экспорт комментариев из текущего листа в Word
Sub CopyCommentsToWord() 'Update 20140325 Dim xComment As Comment Dim wApp As Object On Error Resume Next Set wApp = GetObject(, "Word.Application") If Err.Number <> 0 Then Err.Clear Set wApp = CreateObject("Word.Application") End If wApp.Visible = True wApp.Documents.Add DocumentType:=0 For Each xComment In Application.ActiveSheet.Comments wApp.Selection.TypeText xComment.Parent.Address & vbTab & xComment.Text wApp.Selection.TypeParagraph Next Set wApp = Nothing End Sub
3, Затем нажмите F5 для запуска этого кода, и все комментарии на активном листе были экспортированы в новый документ Word с адресом его ячейки. Смотрите скриншот:

Статьи по теме:
Как вставить таблицу из Excel в Word – 4 способа
Word и Excel — приложения офисного пакета Microsoft. Поэтому эти программы тесно взаимосвязаны. Они позволяют создавать таблицы и редактировать их. Однако не все пользователи знают, как перенести таблицу из Excel в Word. Ниже приведены пошаговые инструкции для таких случаев.
Как вставить таблицу Excel в Word: 4 способа
Благодаря тесной интеграции между Ворд и Эксель можно пользоваться схожими функциями в разных документах, а также экспортировать и импортировать объекты при условии их совместимости. В частности, можно перенести таблицу из листа Excel в Word.
Для этого предусмотрено 4 способа. Ниже к каждому из них приводится пошаговая инструкция. Однако прежде стоит уменьшить ширину столбцов или удалить лишние данные в Эксель, так как там рабочая область шире. Из-за этого ячейки при перемещении в Ворд могут попросту не отобразиться.
Способ 1: Простое копирование и вставка
Удобнее всего перемещать табличные данные из Excel в Word, чтобы они стали частью текстового документа, — простым копированием. Обе программы должны быть одновременно открыты.
Инструкция состоит из трех действий:
- Выделить таблицу Эксель, которую необходимо перенести в Ворд.

- Скопировать ее, используя сочетание клавиш Ctrl и C. Второй вариант: кликнуть по выделению правой клавишей мышки и в контекстном меню выбрать «Копировать».
Важный момент! Следует заранее обозначить столбцы и строки в Excel, иначе добавленная таблица отобразится в Ворде без разграничения на секции. Для вставки сетки нужно открыть в верхней панели вкладку «Главная», перейти в раздел «Шрифт» и нажать на стрелку рядом с соответствующим значком. Затем следует выбрать вариант «Все границы».


Иногда скопированная таблица появляется не в том месте. Чтобы ее переместить, необходимо зажать значок в виде стрелок рядом с левым верхним углом с помощью левой кнопки мышки. После этого можно переносить столбцы в любую часть рабочей области.

Если нужно увеличить границы таблицы, аналогичным образом зажимают квадрат рядом с правым нижним углом и тянут мышкой в сторону.

Если кликнуть мышкой по любой из секций, в верхней ленте появятся инструменты для редактирования, разделенные на 2 вкладки: «Макет» и «Конструктор».
Указанный способ перевода таблицы из Excel в Word — наглядный пример взаимодействия Ворда и Экселя.
Способ 2: Копирование и специальная вставка
Если из Эксель необходимо перевести таблицу в Ворд, можно также применить инструмент «Специальная вставка». При его использовании сохраняется первоначальный вид секций и их связь с приложением Excel и конкретным исходным документом. Этот вариант преобразования позволяет перебросить любые по высоте и ширине ячейки в текстовый редактор. Однако их отображение в Word может искажаться.
- Выделяем строки и копируем их, используя правую клавишу мыши либо комбинацию кнопок Ctrl + C.

- В Ворде открываем сверху вкладку «Главная» и нажимаем «Вставить», затем выбираем параметр «Специальная вставка».

- В диалоговом окне выбираем «Лист», затем указываем один из вариантов добавления: «Связать» или «Вставить». Далее подтверждаем выбор, нажав кнопку «ОК».

Если выбрать первый способ, при редактировании столбцов из файла Excel пользователю будет доступен функционал программы Эксель прямо в Ворде. При указании параметра «Связать» со вставленной сеткой и ее содержимым можно будет работать аналогичным образом, как и в предыдущем случае, однако при попытке редактирования пользователя будет перебрасывать в Excel.
При этом любые изменения таблица отобразятся и в Word тоже. Для внесения правок нужно дважды кликнуть по любой строке, а для выхода из этого режима — щелкнуть в любой другой части рабочей области.
Способ 3: Вставка таблицы из файла
Из Excel перевести таблицу в Word можно также, открыв лишь текстовый редактор. Для этого нужно знать расположение документа, чтобы вставить файл. Поэтому стоит заранее сохранить его в удобном для поиска месте. Такой способ подойдет, если в исходнике нет лишних элементов.
Перенос таблицы осуществляется следующим образом:
- Ставим курсор в нужном месте в окне Word.
- Переходим в раздел «Вставка» и в категории «Текст» нажимаем «Объект».

- В выпадающем меню выбираем вкладку «из файла», нажимаем «Обзор», указываем расположение исходника и щелкаем по кнопке «Вставить».


Далее можно просто подтвердить выбор, нажав «ОК». В этом случае можно лишь поменять размеры, переделать содержимое нельзя. Если установить связь, преобразовывать содержимое и границы пользователь сможет в обеих программах.
Параметр «В виде значка» означает, что в текстовом приложении появится ярлык исходного файла. Если связь с ним не установлена с помощью галочки напротив соответствующего пункта, изменения будут недоступны. Документ нужно закрыть для добавления.
Важный момент! Если в меню вставки выбрать вкладку «Создание» и там указать «Лист Microsoft Excel» (Microsoft Excel Worksheet), добавится сетка с пустыми ячейками. При работе с ней будут доступны формулы, вычисления и другие инструменты Эксель.
Способ 4: Самостоятельное создание таблицы в Word
Четвертый способ позволяет не преобразовать таблицу, сохраненную в Excel, а создать новую.
Для этого следует:
- Перейти в верхней панели инструментов к разделу «Вставка».
- Нажать «Таблица» и выбрать Excel.

- Добавленная сетка будет сделана по аналогии с указанными электронными таблицами. При работе с ней доступ к функционалу Эксель тоже сохраняется.

Если при переносе ячеек из одного приложения в другое данные отображаются некорректно из-за большого объема, а проблема не решается форматированием границ, остается лишь разбить столбцы со строками на несколько частей и поочередно вставить их в текстовый редактор.