Как в excel увеличить строку
Перейти к содержимому

Как в excel увеличить строку

  • автор:

Как увеличить высоту строки Excel с помощью Apache-POI, если значение объединенной ячейки превышает ширину?

И другие необходимые зависимые классы. Есть ли способ увеличить высоту объединенной ячейки в соответствии со значением ячейки.

Поделиться Источник 29 июля 2017 в 08:37

1 ответ

Для того, чтобы дать вам представление о том, как вычислить необходимую высоту строки.

Мы можем получить ширину столбцов по ширине символов для столбцов, используя Sheet.getColumnWidth(int) . Но это не очень точно, так как это только для чисел глифов: 1,2,3,4,5,6,7,8,9,0. В шрифтах истинного типа есть глифы (., |, l. ) которые требуют гораздо меньшей ширины. Таким образом, этот результат будет гораздо более неточным, так как такие более низкие ширины глифов используются в тексте.

Мы можем исправить ширину столбцов в символах с помощью коэффициента. Я использую 5/4. Но это сильно зависит от используемого языка.

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

import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.ss.util.CellRangeAddress; public class CreateExcelCellWrapText < public static void main(String[] args) throws Exception < XSSFWorkbook workbook = new XSSFWorkbook(); CellStyle cellstyle = workbook.createCellStyle(); cellstyle.setWrapText(true); Sheet sheet = workbook.createSheet(); //__________________________not merged = height is auto sized Row row = sheet.createRow(0); Cell cell = row.createCell(2); cell.setCellValue("String cell content\nhaving line wrap."); cell.setCellStyle(cellstyle); //__________________________merged = height is not auto sized row = sheet.createRow(2); cell = row.createCell(2); cell.setCellValue("String cell content\nhaving line wrap."); cell.setCellStyle(cellstyle); CellRangeAddress cellRangeAddress = new CellRangeAddress(2, 2, 2, 3); sheet.addMergedRegion(cellRangeAddress); //__________________________merged with calculated height row = sheet.createRow(4); String text = "String cell content\nhaving line wrap.\nIt has new line marks and then a long text without new line marks.\nFollowed by short text part.\n\n\nGreetings"; cell = row.createCell(2); cell.setCellValue(text); cell.setCellStyle(cellstyle); cellRangeAddress = new CellRangeAddress(4, 4, 2, 3); sheet.addMergedRegion(cellRangeAddress); //get the column width in character widths for the merged columns //this is not really accurate since it only is for number glyphs: 1,2,3,4,5,6,7,8,9,0 //in true type fonts there are glyps (., |, l, . ) which need much less width int colwidthinchars = (sheet.getColumnWidth(2) + sheet.getColumnWidth(3)) / 256; System.out.println(colwidthinchars); //correct the colwidthinchars by a factor 5/4 (highly dependent on the language used) colwidthinchars = Math.round(colwidthinchars * 5f/4f); System.out.println(colwidthinchars); //calculate the needed rows dependent on the text and the column width in character widths String[] chars = text.split(""); int neededrows = 1; int counter = 0; for (int i = 0; i < chars.length; i++) < counter++; if (counter == colwidthinchars) < System.out.println("new line because of charcter count"); neededrows++; counter = 0; >else if ("\n".equals(chars[i])) < System.out.println("new line because of new line mark"); neededrows++; counter = 0; >> System.out.println(neededrows); //get default row height float defaultrowheight = sheet.getDefaultRowHeightInPoints(); System.out.println(defaultrowheight); row.setHeightInPoints(neededrows * defaultrowheight); workbook.write(new FileOutputStream("CreateExcelCellWrapText.xlsx")); workbook.close(); > > 

Это работает, потому что используется стандартный шрифт и размер шрифта. Задача увеличивается до бесконечности, когда используются разные шрифты и разные размеры шрифта ;-).

Как изменить размеры строки формул?

Рис. 1.18. Расширенный вариант строки формул

Рис. 1.18. Расширенный вариант строки формул

2 способ

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

3 способ

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

Примечание. Если в окне строки формул отображается полоса прокрутки, то в строке формул есть дополнительный текст.

Как в excel увеличить строку

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

Высоту строки можно задать в пределах от 0 до 409. Это значение соответствует высоте строки в пунктах (1 пункт соответствует приблизительно 1/72 дюйма). Высота строки по умолчанию составляет 12,75 пункта. Если высота строки равна 0, строка не помещается в ячейке, то вместо будет скрыта.

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

Для изменения размеров строк и столбцов можно выполнить следующее:

  • Одновременно изменить размеры нескольких столбцов и строк. Для этого выделите их и перетащите границу между заголовками любых из выделенных столбцов (строк) — изменится размер всех столбцов (строк). При выделении неприлегающих столбцов удерживайте нажатой клавишу Ctrl.
  • Установить заданную ширину для выделенных столбцов. Для этого на ленте Главная в группе Ячейки щёлкните по кнопке Формат и в группе Размер ячейки выберите пункт Ширина столбца. Введите значение в поле Ширина столбца. (Аналогично для строк выберите пункт Высота строки.)
  • Заставить Excel подогнать ширину столбца к самой длинной записи — дважды щёлкните по правой границе заголовка столбца. Чтобы подогнать высоту строки к самой длинной записи — дважды щёлкните по нижней границе номера строки. То же самое можно сделать с помощью кнопки Формат в группе Ячейки командой Автоподбор ширины столбца (Автоподбор высоты строки). Excel установит ширину столбца или высоту строки на уровне самой длинной записи.
  • Вернуть столбцу стандартную ширину — в группе Ячейки выберите команду ФорматШирина по умолчанию, затем в появившемся диалоговом окне Ширина столбца щёлкните по кнопке OK.

Eugeneer’s Media Cloud World

Creative IT Practitioner’s blog — take your thought and give it idea acceleration! In my focus: networks, security, virtualization, multimedia, AI.

Главная

А А Thursday 11 September 2014

Высота строки в MS Excel 409 пт и больше.

Всем привет.

В прошлом году я вам показывал фокус с защитой листа в MS Excel 2010. Но как оказалось в великом и могучем MS Excel сюрпризов хватает. Вот свежий пример.

Звонит коллега и просит помочь выровнять строки документа по высоте. Не видя проблем я решил использовать «Автоподбор высоты строки».

Упсс, а тут оказывается есть ограничение по высоте в 409 пунктов. А текста в ячейке оказалось много, и коллега хочет его видеть весь.

Что делать?
Выход есть. И выход в объединении ячеек по вертикали.
Но чтобы таблица выглядела правильно надо сделать следующее:

  • снизу нашей ячейки добавляем пустую строку. Лучше две.
  • делаем объедение каждой клеточки с клеточками новой строки.
  • растягиваем высоту объединенной клетки на весь текст вручную. К сожалению в этом случае автоподбор высоты также не сработает. Только руцями.

И результат есть!

Вот так то.)
Posted by Nyukers в 05:30

7 comments:

Это единственное место, где я получил помощь по растягиванию длинного столбца на несколько страниц. Здоровья и материальной обеспеченности!

Anonymous said.

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

Все что вы хотите автоматом это макрос или VBA.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *