Сделать MS Word таблицу автоподбора по высоте
Я ищу способ сделать следующее в Microsoft Word 2016:
Я ищу способ заставить таблицу (или границу) работать так же долго, как и на странице, независимо от содержимого. Он должен заполнить всю высоту, какую только может, независимо от того, содержит ли он одну строку или 1000 строк.
На приведенном выше снимке экрана таблица (1) должна занимать все пространство под ней независимо от ее содержимого. Таблица внизу страницы (3) - это таблица, которая автоматически перемещается вниз. Если (1) становится слишком большим, чтобы поместиться на странице, он автоматически переместит (3) на следующую страницу. Это уже работает, плавая (3) в нижней части страницы.
Я не нашел способа заставить мой стол (1) занимать всю высоту. Может мне понадобится что-то другое, кроме стола? В этом случае очень важно, чтобы я мог поставить стол. Потому что таблица, которую вы видите в (1), будет автоматически сгенерирована из пользовательских данных и должна оставаться таблицей. Я могу положить почти все вокруг стола, но он должен оставаться за столом и может быть стилизован в любом случае, если это необходимо. Примечание с одной стороны: я уже пытался создать текстовое поле, но таблица внутри текстового поля не работает для моих целей (потому что этот файл впоследствии редактируется с помощью программирования.NET).
РЕДАКТИРОВАТЬ: важное примечание. На снимке экрана показаны две строки, но после обработки это может стать любым числом строк (возможно 2, 3, даже 10.000 строк).
У кого-нибудь есть какие-либо идеи? Вы не поверите, сколько часов я уже потратил на эту проблему...
2 ответа
Мне это удалось, вроде. Это не идеально, особенно если основная таблица переменной длины становится ближе к концу страницы. Настройки " Сохранить с помощью следующего абзаца", похоже, плохо работают с плавающими таблицами, поэтому таблица внизу просто начнет разливаться строка за строкой в верхнюю часть следующей страницы. Тем не менее, как только основная таблица станет достаточно длинной, чтобы переместить все строки нижней таблицы по разрыву страницы, эта таблица отскочит вниз к нижней части следующей страницы. Кроме того, при некоторых увеличениях "скрытые" границы боковой страницы частично отображаются. Возможно, дальнейшая работа с некоторыми из этих ценностей исправит это. Во всяком случае, это отправная точка. Я надеюсь, что другие смогут предложить способы улучшить / упростить это.
Основной трюк заключается в использовании границы страницы, как предложил Мате Юхас в комментарии.
Сначала установите сплошную черную рамку шириной 1 пт внизу, слева и справа (не сверху). Нажмите " Параметры", установите все поля на 0 пунктов, установите параметр " Из" в " Текст", а затем снимите все 4 флажка в разделе " Параметры".
Далее вставьте 3 таблицы.
Таблица 1 (это та, что показана в верхней части вашей иллюстрации):
- Вставьте таблицу, в которой есть столько столбцов и строк, сколько вам нужно.
- В свойствах таблицы задайте для предпочтительной ширины значение 100%, измеренное в процентах. Оставьте обтекание текстом " Нет". Установите сплошную черную верхнюю и нижнюю границу в 1 пункт (и внутренние границы, если вы хотите их, хотя в примере на иллюстрации их нет). Границы боковой страницы будут служить боковыми границами.
Таблица 2 (основная таблица, которая будет иметь переменную длину):
- Вставьте таблицу, в которой есть столько столбцов и строк, сколько вам нужно. Убедитесь, что между этой таблицей и таблицей 1 есть пустой абзац.
- В свойствах таблицы установите ширину на 100%, измеренную в процентах. Оставьте текстовую обертку равной None и добавьте сплошную черную верхнюю границу размером 1 пт (и внутренние границы, если они вам нужны).
- При желании уменьшите высоту абзаца между таблицами 1 и 2. Затем выберите абзац и примените к нему белую заливку, чтобы замаскировать границы боковой страницы.
Таблица 3 (внизу страницы):
- Вставьте таблицу, в которой есть столько столбцов, сколько вам нужно, и на 1 строку больше, чем вам нужно.
- In Table Properties, set the preferred width to 100% measured in Percentage. Set the text wrapping to Around, and then click Positioning, and set horizontal position to -1 pt relative to Margin (to overlap the left page border), and vertical position to Bottom relative to Margin. Set a 1 pt solid black top and internal borders.
Select the top row of the table, and merge the cells. Then, with the top row still selected, go into Table Properties > Borders and Shading, and apply white shading to this row to 'mask' the side page borders.
At this point, the right page border wasn't completely masked in my document, so I went back into Table Properties and changed the Measure in field under Size to Points (that's the unit that my version of Word is set to use, instead of inches or cm). I then increased the width slightly, by 2 pts or so. This field is a bit tricky, because some values just don't 'take,' so you might have to increase or decrease the left or right page margin by 1/2 pt or so to get everything to line up.
Optionally adjust the paragraph settings for the top row so that it matches the empty paragraph between tables 1 and 2.
- Set the blank paragraph between tables 2 and 3 to an exact height of 1 pt, with no space above or below, to effectively hide it.
Here's the bottom of my page. The dots circled in red show the tiny paragraph between the main table and the bottom table, though the main table actually appears to end much lower. (Of course those dots are visible at all only because I have paragraph marks visible.)
Это работает в Word 365 и должно работать в Word 2016
- Выберите строку, которую нужно изменить, в вашем случае, строку, которую вы пометили как "1".
- Щелкните правой кнопкой мыши и выберите "Свойства таблицы"
- Выберите "Строка"
- Укажите минимальную высоту, которая вам нужна (вам нужно будет поиграть с ней, чтобы она соответствовала вашему столу), затем убедитесь, что у вас в поле "Высота строки:" установлено значение "По крайней мере"