• 1000 при печати.
В моем листе данных у меня есть сотни строк информации, и в каждой строке данные могут значительно различаться по длине (от одного числа до нескольких абзацев текста). Я создал второй лист, который фильтрует нужную мне информацию и отображает ее визуально привлекательным способом, беря исходные данные из каждой строки и разбирая их на 8 строк (7 с информацией и одна пустая строка для визуального разделения одной). блок информации из следующего) за один оригинал. Проблема в том, что разная длина данных означает, что мне приходится вручную перемещать разрывы страниц каждый раз, когда я меняю фильтр.
Вот пустой раздел второго листа для справки.
Я хочу иметь возможность печатать с как можно большим количеством групп по 8 строк на странице, но не разбивать группу на следующую страницу.
Честно говоря, я не уверен как начать, хотя я предполагаю, что могу использовать пустую строку, чтобы каким-то образом вызвать разрывы страниц. Любая помощь будет принята с благодарностью!
Обновлено
Мне удалось написать элементарный код (в основном) для выполнения sh того, что я хотел. Однако лучшее, что я могу сказать, это то, что getRowHeight () не работает с моим обернутым текстом, поскольку он правильно форматирует, когда у меня есть пустой набор данных, но не иначе.
Может кто-нибудь подтвердить и сказать мне, Я пропал?
function dynamicPageBreaks() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var curRow = 2; //start on Row 2 (1 contains the filter selection)
var curTotPix = ss.getRowHeight(curRow);
var pgPix = 1030;
//loop until end of sheet
var endRow = ss.getLastRow();
do {
//find row that goes past page break
do {
curRow++;
curTotPix = curTotPix + ss.getRowHeight(curRow);
} while (curTotPix <= pgPix);
//get value of cell in column B of that row
var curCell = sheet.getRange(curRow,2).getValue();
//back up until we find an empty row
if (curCell == "") {
break;
} else do {
curTotPix = curTotPix - ss.getRowHeight(curRow);
curRow = curRow - 1;
curCell = sheet.getRange(curRow,2).getValue();
} while (curCell != "");
//expand empty row to match necessary pixels
var addHeight = pgPix - curTotPix;
ss.setRowHeight(curRow - 1, ss.getRowHeight(curRow) + addHeight);
//reset for next iteration
curTotPix = ss.getRowHeight(curRow);
} while (curRow < endRow);
}