Объединить ячейки word в 1с
Очередной день, очередные задачи и соответственно очередные вопросы.
Стоит задача:
С документов формата .doc, .docx нужно считывать данные как с excel. Загнать например в тз и дальше уже с этими данными работать.
Вроде бы все получалось до того момента пока не дошел до объединенных ячеек в таблице ворда тупо обращение к такой ячейке выдает ошибку. Но у меня почему то даже строку получить не может где присутствует объединенная ячейка.
Может есть у кого то опыт как обойти эту проблему?
Или объединить ячейки или как можно прочитать все токи эту строку. Таблицы всегда разные.
Желательно конкретные решения.
Вот пример:
Документ.Application.ActiveDocument.Tables(1).Rows(0)
Документ - это Актив документ ком объекта.
Tables - это таблица в документе ворд (в нашем случаи взяли первую).
Rows - это строки нашей таблицы (по индексу берем первую).
Второй пример:
Документ.Application.ActiveDocument.Tables(1).Rows(0).Cells(1).Range.Text
тут берем текст с ячейки.
Cells - это ячейка (в нашем случаи берем значение с первой ячейки первой строки (инд0)первой таблицы).
мне выдает ошибку Ошибка при вызове метода контекста (Rows) .
мне так же само надо считать данные с таблиц в документе Word, и все классно считывает,
пока не натыкается на объединенные ячейки.
Уже всю голову сломала, что делать.
все нахожу, могу в цикле перебрать строки или столбцы, но просто например к строку обратиться не получается, только к ячейке
Интересно, если отловить на этой строке точкой останова, в табло отладчика Документ.Application.ActiveDocument.Tables(1).Rows(0) разворачивается в дерево?
Как-то тоже пришлось решать подобную задачу.
Пошел по пути:
1. Формирование перечня существующих ячеек таблицы.
2. Обработка перечня существующих ячеек таблицы.
Перечень существующих ячеек представляет собой список:
1=[1][2][3][4]
2=[1][2][4]
где слева от символа "равно" - номера строк, справа - номера существующих ячеек.
Алгоритм формирования перечня существующих ячеек таблицы достаточно прост:
1. Попытка получить ссылку на 1-ю строку таблицы: vRow:=vTabl.Rows.item(1);
Если все норм, значит, таблица НЕ содержит объединенных по вертикали ячеек.
Если Исключение (Exception), то в таблице есть объединенные по вертикали ячейки.
2. Если объединенных по вертикали ячеек нет, то "стандартная" обработка таблицы.
3. Если объединенные по вертикали ячейки есть, то:
3.1 Получаем кол-во строк в таблице: сRows:=vTabl.Rows.Count;
3.2 Получаем максимально возможно кол-во ячеек (столбцов) в строках таблицы: cCols := vTabl.Columns.Count;
3.3 Цикл по строкам таблицы (nRow от 1 до сRows).
3.3.1 Цикл по НОМЕРАМ ячеек в очередной строке таблицы (nCol от 1 до cCols).
3.3.1.1 Попытка получить ссылку на очередную ячейку в очередной строке vCell:=vTbl.Cell(nRow, nCol);
Если все норм, значит, ячейка существует (добавляем ее в результирующий список, см. выше).
Если Исключение (Exception), то ячейка НЕ существует (пропускаем).
Кроме прочего в статье присутствует пример создания таблицы с любым количеством колонок и столбцов. Несколько строк с форматированием текста и таблицы. Создание "объединенных" ячеек.
В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и описанные здесь динамические механизмы.
В моем примере я заранее создал новый пустой документ.
Тестировалось на Office 2007.
Исп. переменные: "ПутьКФайлу" - строка. Полное имя файла в формате MSWord.
"Ссылка" - ДокументСсылка (в моем случае - счет).
Похожие FAQ
Еще в этой же категории
Как в excel сохраненный из 1С вставить новый лист? 15
Я думаю, все сталкивались с однолистовым excel файлом из 1С, у которого на первый взгляд, нет возможности добавить листы. Все не так страшно - их просто скрыли или, что чаще всего - даже не отображали (обусловлено созданием файла из стороннего прил Как сформировать документ в Word из 1С? (Active Document) 14
ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _ Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа: 1. Путем замены шаблонного текста в макете Wordа. 2. Путем вставки текста с помощью закладок в Wo Экспорт и Импорт данных 1С - Microsoft Excel 12
Экспорт Процедура ОсновныеДействияФормыЭкспорт(Кнопка) - выгружает из указанного справочника данные в режиме экспорта в файл в формате Microsoft Excel с указанным именем, используя преобразование данных к типу число и типу строка; Процедура Основ Преобразование XLS в MXL 10
Конвертация таблиц из Excel в MXL - скачать Converter Excel v MXL: Для 8.х - Для 7.7 - // Выбор файла Microsoft Excel Procedure FileNameStartChoice(Element, StdProcessing) StdProcessing = False; DialogFile = New FileDialog(FileDialogMode. Работа с MS Word через OLE 10
В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и опис Посмотреть все в категории Работа с Microsoft Office и OpenOffice
Excel для Microsoft 365 Word для Microsoft 365 Outlook для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 Outlook 2021 PowerPoint 2021 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 Office 2016 Еще. Меньше
Вы можете объединять ячейки в таблице так, чтобы содержимое занимало несколько строк или столбцов. Кроме того, можно разделять ячейки на более мелкие.
Объединение ячеек
Выделите ячейки, которые требуется объединить.
На вкладке Макет нажмите кнопку Объединить ячейки.
Чтобы отменить объединение ячеек, выделите их и выберите команду Отменить объединение ячеек.
Примечание: В приложении Excel выделите нужные ячейки и нажмите кнопку Объединить и поместить в центре. Чтобы отменить объединение ячеек, выделите их и выберите команду Отменить объединение ячеек.
Разделение ячеек
Выделите ячейку, которую вы хотите разделить.
На вкладке Макет нажмите кнопку Разделить ячейки.
Введите число строк или столбцов, на которые вы хотите разделить выбранную ячейку, и нажмите кнопку ОК.
Вам нужны дополнительные возможности?
Для организации структуры таблицы вы можете объединять и разделять ячейки в ней, как вам требуется.
Например, можно сделать ячейку с текстом "Продажи за месяц" заголовком для всех столбцов с данными по месяцам, а не для одного столбца.
Выделите ячейки, которые нужно объединить.
На вкладке Макет нажмите кнопку Объединить ячейки.
Выровняйте заголовок "Продажи за месяц" по центру.
Чтобы добавить заголовок для продаж за квартал, выделите строку заголовка и нажмите кнопку Разделить ячейки.
Так как нам требуется два столбца (для квартала 1 и квартала 2), оставьте число столбцов равным 2 и нажмите кнопку ОК.
Добавьте текст заголовков: "Продажи кв1" и "Продажи кв2".
В Excel нельзя объединять ячейки в таблицах, но можно на листах.
Чтобы сделать ячейку с текстом "Продажи за месяц" заголовком для всех месяцев, выделите ячейки, которые нужно объединить, а затем на вкладке Главная нажмите кнопку Объединить и поместить в центре. При объединении ячеек данные во второй ячейке теряются.
Чтобы отменить объединение, выберите команду Отменить объединение ячеек.
Довольно часто при работе с таблицами в программе Microsoft Excel случается ситуация, когда требуется объединить несколько ячеек. Задача не слишком сложная, если эти ячейки не содержат информации. Но что делать, если в них уже внесена информация? Неужели она будет уничтожены? Давайте разберемся, как объединить ячейки, в том числе и без потери их содержимого, в программе Microsoft Excel.
Объединение ячеек в Excel
Рассмотрим объединение во всех способах, в которых ячейки будут вмещать в себе данные. Если две соседние позиции для будущего слияния имеют разную информацию, их можно сохранить в обоих случаях — для этого офисным пакетом предусмотрены специальные функции, рассмотренные ниже. Объединение может понадобиться не только для внесения данных с двух клеток в одну, но и, например, с целью создания шапки на несколько колонок.
Способ 1: Простое объединение
Самый простой способ совместить в одну позицию несколько клеток — это использование предусмотренной кнопки в меню.
-
Последовательно выделите левой кнопкой мыши ячейки для слияния. Это могут быть строки, столбцы или совмещение вариантов. В рассмотренном методе используем объединение строки.
Способ 2: Изменение свойств ячейки
Существует возможность объединить ячейки через контекстное меню. Результат, получаемый из этого способа, не отличается от первого, но кому-то может быть удобнее в использовании.
-
Выделите курсором ячейки, которые следует объединить, кликните по ним правой кнопкой мыши, и в появившемся контекстном меню выберите пункт «Формат ячеек».
Способ 3: Объединение без потерь
Начнём с более простого варианта. Всё, что нужно сделать — указать в новой ячейке путь к объединяемым ячейкам, а между ними вставить специальный символ. Давайте соединим сразу три ячейки в одну, создав таким образом текстовую строку.
-
Выберите ячейку, в которой желаете увидеть результат объединения. В ней напишите знак равенства «=» и последовательно выберите конкретные позиции либо целый диапазон данных для слияния. Между каждой ячейкой или диапазоном следует внести знак амперсанта «&». В указанном примере мы объединяем клетки «A1», «B1», «C1» в одну — «D1». После ввода функции нажимаем «Enter».
Если обычное объединение ячеек в программе Microsoft Excel довольно простое, то с объединением ячеек без потерь придется повозиться. Тем не менее это тоже выполнимая задача для такого рода программы. Использование функций и специальных символов позволит сэкономить много времени на обработке большого объема информации.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Мы уже неоднократно писали о возможностях текстового редактора Microsoft Word в целом, и в частности о том, как в нем создавать и изменять таблицы. Инструментов для этих целей в программе имеется довольно много, все они удобно реализованы и позволяют с легкостью справляться со всеми задачами, которые могут выдвигать перед собой большинство пользователей. Одной из таковых является объединение ячеек, и сегодня мы расскажем о ее решении.
Объединение ячеек в Ворде
При создании таблицы в Microsoft Word на ленте (панель управления) появляется группа вкладок «Работа с таблицами». В ее состав входит подвкладка «Макет», инструментарием которой нам с вами и нужно воспользоваться для того, чтобы объединить ячейки.
-
Выделите с помощью мышки ячейки в таблице, которые необходимо объединить. Это могут быть как элементы одной строки или столбца, так и диапазон таковых.
Разделение ячеек
Узнав о том, как объединить ячейки созданной в Ворде таблицы, нелишним также будет иметь представление и о том, как выполнить противоположную процедуру – их разделение. Алгоритм действий в данном случае практически такой же.
- Выделите с помощью мышки ячейку (или ячейки), которую вы хотите разбить на несколько. В нашем примере это пара, объединенная в предыдущей части статьи.
Примечание: Даже одну ячейку можно разбить на несколько частей и по горизонтали (строки), и по вертикали (столбцы).
Ячейки будут разделены согласно заданным вами параметрам.
Заключение
Из этой небольшой статьи вы узнали немного больше о работе с таблицами в Microsoft Word, а конкретно о том, как объединять ячейки и/или разделять их.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Читайте также: