В таблице Google, как я могу заставить строку быть определенной высоты?

72

В электронной таблице Google Doc мне бы хотелось, чтобы каждая строка имела одинаковую высоту независимо от количества текста в каждой ячейке.

Я попытался « изменить размер строки », но независимо от того, сколько пикселей я вставил, строка расширяется вниз до высоты самой высокой ячейки с полным развернутым текстом.

Как заставить строку оставаться на определенной высоте и вставлять полосы прокрутки для всего текста, который длиннее этой высоты?

альтернативный текст

Вот видео, объясняющее, что я имею в виду:

http://screenr.com/Ol4

Эдвард Тангей
источник
Я не могу найти способ сделать это. Мне было бы интересно увидеть решение этой проблемы.
Эль
Может быть способ показать ограниченный объем контента, а затем развернуть его или открыть в окне по щелчку с помощью пользовательского сценария. Насколько вы привязаны к конкретному интерфейсу, изображенному на вашем изображении?
Дэн Робертс
Решение, которое мне нужно, чтобы иметь возможность вставлять «бесконечный текст / изображения» в маленькие ячейки, чтобы я мог увеличивать и просматривать весь этот текст, если захочу, но могу в любое время сделать резервную копию и получить обзор всех моих заметки и код. Прямо сейчас я не могу получить этот обзор, так как длинные тексты и вставки кода расширяют все до конца страницы.
Эдвард Тангей
Я только что присоединился, так что из-за моего отсутствия точек репутации мне не разрешено высказать решение user554370 по этому поводу, а именно добавить взамен большой текст в качестве комментария. Я не уверен, что это решило бы вопрос ОП или нет, но это определенно помогло мне, так что спасибо.
Взял на себя смелость upvote!
Джейкоб Ян Туинстра

Ответы:

24

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

Lipis
источник
5
Интересно, почему они не внедрили overflow:scrollв клетки, чтобы учесть это?
Эль
6
Неверно @Lipis. Это не ограничение HTML. Простой <div style = "overflow: hidden; height: 20px;"> Здесь есть что-то </ div>.
Левитикон
1
@Levitikon, но можете ли вы представить, как это было бы ужасно с таким количеством полос прокрутки? и если у вас нет полос прокрутки, вы не увидите весь текст ... и вы должны были догадаться, что есть что-то еще, чтобы увидеть это после того, как вы нажмете на него или что-то еще .. Я не думаю, что это хорошее решение ..
Lipis
3
@Lipis: Итак, у вас есть ячейка {overflow: hidden} cell: hover {overflow: scroll}, а затем вы видите только полосу прокрутки ячейки, над которой вы зависли.
РикМишам
1
Теперь можно объединять ячейки по вертикали.
Рубен
22

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

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

Пример выдержки из таблицы, демонстрирующей описанное поведение

Недостатки появляются при попытке переставить или отсортировать строки, например, так как строки работают «вдвое» с этим решением, но, возможно, это не большая проблема.

Дженнифер
источник
Теперь это творческий обходной путь, который действительно работает! Если вы не возражаете против лишнего пустого ряда. Отличное мышление! Одно предостережение: вы не можете включить фильтры в диапазоне, который содержит объединенные строки, как это.
Дж. Д. Смит
отличный трюк !!!!!
Voxter
20

Четвертый вариант справа (строка меню - как только вы попадете в таблицу с результатами и т. Д.). Существует опция «WRAP TEXT», выберите нужные строки и нажмите на них.

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

** «Текст переноса» отсутствует ни в одном из раскрывающихся меню, это кнопка на ленте внизу (тот же раздел, что и горизонтальное и вертикальное выравнивание).

Лоренс
источник
2
Этот ответ намного полезнее принятого!
Фритасс
24
@freitass: для ОП это не «более полезно». У него есть код в его камере, которая имеет много разрывов строк. Отключение переноса не решит его (или мою) проблему, так как в итоге вы получите ячейку, равную количеству новых строк в вашем контенте. Это будет работать для текста абзаца, хотя. Но это не проблема ОП.
РикМишам
4
Хотя этот ответ может быть полезным, он не решает проблему ОП.
Рубен
Это не работает, если у вас есть перевод строки в тексте, например, тексты песен или стихи.
Уэс
13

Если ячейки содержат символы разрыва строки, параметры форматирования «Переполнение», «Обтекание» и «Клип» не дают желаемого эффекта ограничения высоты строки.

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

Одна такая формула: =arrayformula( iferror( SUBSTITUTE(A:A,char(10), " " ) )). Вставьте его в строку 1 (строку заголовка) соседнего столбца, заменив A:Aметку исходного столбца.

Скройте исходный столбец, затем примените форматирование [overflow | wrap | clip] к вновь созданному столбцу.

Показаны нежелательный высокий ряд

Отображение строки удобного размера и формула, которая позволяет

Роберт К. Белл
источник
8

Как насчет использования заметок?

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

Вот как это выглядит сейчас при перемещении по ячейке:

Данные с новыми строками в заметках (Google Sheets)

(Я понимаю, что это не совсем решает проблему OP, как указано, но нет способа достичь того, о чем они просят, в настоящее время в Google Sheets.)

Ян Грейнджер
источник
1
Фантастическая идея и до сих пор актуальна в 2018 году, большое спасибо!
Лиран Х
6

Новые Google Sheets позволяют объединять ячейки по вертикали. Это позволяет сохранить высоту строки; когда ячейка находится в режиме редактирования, отображается вертикальная полоса прокрутки.

пример

Инструкции - Чтобы объединить ячейки по вертикали, а затем изменить размер необработанного, вам нужно выбрать ячейку + одну ячейку ниже, а затем объединить:

  1. Не используйте клавишу CTRL для выбора нескольких ячеек для слияния, но вместо этого используйте SHIFT + клавишу со стрелкой вниз (возможно, это ошибка в Google Sheets, так как выбор соседних ячеек с помощью CTRL делает параметр слияния недоступным).

  2. Нажмите кнопку «Объединить» (также доступно в меню «Формат»> «Объединить ячейки»> «Объединить по вертикали»).

Noam Manos
источник
2

Фактического способа нет, перенос будет влиять на ширину ячейки, а не ее высоту. Всякий раз, когда это беспокоит меня, я добавляю текст как блок комментария. Просто щелкните правой кнопкой мыши по соответствующей ячейке и выберите «комментарий» в контекстном меню; удалите автоматически сгенерированный текст и вставьте свой. Таким образом, вы сможете поддерживать фиксированную высоту строки для всех ваших строк.

user554370
источник
2

Я могу достичь этого двумя способами:

  • Отключите перенос слов в каждой ячейке в строке (как все уже упоминали)
  • Замените все разрывы строк внутри текста на 1000 пробелов (1000 пробелов будут отображаться как разрывы строк)
  • Замените все вкладки внутри текста на 4 пробела (4 пробела появятся в виде вкладки)

Я написал скрипт для запуска из Tools-> Script Editor:

function myFunction() {

  var r=SpreadsheetApp.getActiveSheet().getDataRange();
  var rws=r.getNumRows();
  var cls=r.getNumColumns();
  var i,j,a,find,repl;
  find="\n";
  repl="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ";
  for (i=1;i<=rws;i++) {
    for (j=1;j<=cls;j++) {
      a=r.getCell(i, j).getValue();
      if (r.getCell(i,j).getFormula()) {continue;}
      try {
        a=a.replace(find,repl);
        r.getCell(i, j).setValue(a);
      }
      catch (err) {continue;}
    }
  }
}

Вот как выглядит свернутая: введите описание изображения здесь

Вот как это выглядит, если дважды щелкнуть ячейку и развернуть ее с помощью вертикальной полосы прокрутки: введите описание изображения здесь

etayluz
источник
1

Я согласен, что пока это невозможно, но вы пытались использовать различные шестнадцатеричные символы, такие как NBSP для вашего текста? Это сделало бы вещи уродливыми и потеряло бы ваше форматирование, которое я заметил без возврата каретки, длина записи не имеет отношения к высоте.

Изменить: Вы должны также представить свою (очень хорошо представленную идею) здесь

gooddadmike
источник
1

Во-первых, удалите все фильтры с вашего листа, если у вас есть. Затем просто добавьте этот скрипт в ваш редактор скриптов и запустите.

function myFunction() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = ss.getActiveSheet();
   var maxRows = sheet.getMaxRows(); 
   //Logger.log(maxRows);
   for (var i=2; i<=maxRows;)
   {
     sheet.insertRowAfter(i);
     range = 'A'+ i.toString() + ':Z' + (i+1).toString();
     sheet.getRange(range).mergeVertically();
     //sheet.setRowHeight(i+1, 1);
     i += 2;
   }
}

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

Викас
источник
0

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

Брэд Мейс
источник
0

Просто. Выберите все ячейки в электронной таблице, затем отмените выбор кнопки WRAP TEXT. Смотрите кнопку, выделенную на скриншоте ниже. Каждая строка и столбец будут возвращаться к одинаковым размерам.

введите описание изображения здесь

DJDeals.com
источник
6
Это работает только если текст обернут. Если текст имеет возврат каретки или новые строки (как и текст, размещенный в вопросе), эта кнопка ничего не делает.
Zeh
1
это помогло мне в аналогичной проблеме, где высота строк не будет работать должным образом. Также обратите внимание, что значок немного отличается в новейших документах Google (выпущенных в конце 2014 года).
Меклариан
0

Это связано с тем, что вы копируете и вставляете откуда-то еще. Если вы вставляете, сначала скопируйте материал в Блокнот и избавьтесь от ненужных пробелов. Затем вставьте в таблицу Google. Тогда обертка будет работать правильно.

гость
источник
0

Обернуть текст работал для меня. И вот почему: после разворачивания конкретной строки я заметил, что существует столбец, для которого кто-то резко уменьшил ширину. Ни один символ не поместился бы должным образом в этом столбце (но в этом столбце было несколько строк текста), и это вызвало огромный рост строки. Поскольку столбец был таким маленьким, текст не был виден, и даже после изменения размера высота строки не изменилась. После разворачивания нужно было только изменить ширину столбца и снова обернуть строку.

Шаши
источник
-2

Четвертый вариант справа (строка меню - как только вы попадете в таблицу с результатами и т. Д.). Существует опция «WRAP TEXT», выберите нужные строки и нажмите на них.

уфф
источник
3
Как это отвечает на вопрос?
Видар С. Рамдал
-3

Попробуйте эту ссылку ниже

https://support.google.com/docs/answer/58183?hl=en

Это должно помочь вам изменить размер столбцов и строк.

Самир
источник
2
Всегда включайте важные ссылки в свой ответ.
Серенесать