Kodovi 3
Kodovi 3
copyRowsWithSetValues() {
let spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
let Sheet2 = spreadSheet.getSheetByName("sheet2");
let sheet2Range = Sheet2.getDataRange();
let sheet2Values = sheet2Range.getValues();
let rowCount = sheet1Values.length;
let columnCount = sheet1Values[0].length;
let Sheet1 = spreadSheet.getSheetByName("sheet1");
let sheet2Range = Sheet1.getRange(1, 1, rowCount, columnCount);
sheet1Range.setValues(sheet2Values);
}
function copyRowsWithSetValues() {
let spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet2 = spreadSheet.getSheetByName(“sheet2”);
sheet1Range.setValues(sheet2Values);
}
function Export() {
const sourceData = SpreadsheetApp.getActive().getRange('RESULTS!
J4:V10').getValues();
console.log('sourceData rows: ' + sourceData.length);
const targets = {
today: {
column: 13 - 1, // zero-indexed
regex: /Today/i,
sheet: SpreadsheetApp.openById('..ss_id...').getSheetByName('DueIn'),
},
tomorrow: {
column: 13 - 1, // zero-indexed
regex: /Tomorrow/i,
sheet: SpreadsheetApp.openById('..ss_id...').getSheetByName('DueIn'),
},
};
for (const [key, target] of Object.entries(targets)) {
const filteredData = sourceData.filter(
row => String(row[target.column]).match(target.regex)
);
console.log(key + ' rows: ' + filteredData.length);
if (filteredData.length) {
appendRows_(target.sheet, filteredData);
}
}
}
/**
* Appends an array or a value to the bottom of a range starting
* at the given column in the first row where the column is blank.
*
* @param {SpreadsheetApp.Sheet} sheet A spreadsheet sheet to append the
data to.
* @param {Object[][]} data The data to append. This argument can be a 2D
array, 1D array or a single value.
* @param {Number} optColumn Optional. The column number where to start
appending the data. Defaults to 1.
* @return {Object} An object with fields {Range} range, {Number} rowStart,
columnStart, numRows, numColumns.
*/
function appendRows_(sheet, data, optColumn) {
// version 1.7, written by --Hyde, 11 February 2021
// - add + 1 in getLastRow_(sheet, optColumn) + 1
// version 1.6, written by --Hyde, 8 February 2021
// - use getLastRow_()
// - remove check of arguments.length
// - add columnStart, numColumns
// version 1.5, written by --Hyde, 1 April 2020
// - remove toast(), just throw error
// version 1.4, written by --Hyde, 28 January 2020
// - simplify conversion to 2D array
// version 1.3, written by --Hyde, 26 January 2020
// - return { range: |Range where new data was written|, rowStart: |
start row of appended range|, numRows: |height of appended range| }
// version 1.2, written by --Hyde, 21 January 2020
// - use Array.isArray, Number
// version 1.1, written by --Hyde, 23 November 2018
// - convert single value and 1D array to 2D array
// version 1.0, written by --Hyde, 31 August 2015
// - initial version
if (!Array.isArray(data)) {
data = [[data]];
} else if (!Array.isArray(data[0])) {
data = [data];
}
const rowStart = getLastRow_(sheet, optColumn) + 1;
const columnStart = Number(optColumn) || 1;
const numRows = data.length;
const numColumns = data[0].length;
const range = sheet.getRange(rowStart, columnStart, numRows, numColumns);
range.setValues(data);
return { range: range, rowStart: rowStart, columnStart: columnStart,
numRows: numRows, numColumns: numColumns };
}
/**
* Gets the position of the last row that has visible content in
* a column of the sheet, or the position of the last row that
* has visible content in any column of the sheet.
*
* @param {Sheet} sheet A sheet in a spreadsheet.
* @param {Number} columnNumber Optional. The 1-indexed position of a column
in the sheet. When missing, the function returns the position of the last
row that has visible content in any column.
* @return {Number} The 1-indexed row number of the last row that has
visible content in column columnNumber, or 0 if the column is blanky.
*/
function getLastRow_(sheet, columnNumber) {
// version 1.4, written by --Hyde, 11 February 2021
// - add || 1 in sheet.getLastRow() || 1
// version 1.3, written by --Hyde, 18 August 2020
// - use ternary
// version 1.2, written by --Hyde, 17 July 2020
// - use sheet.getLastRow()
// - see https://support.google.com/docs/thread/59217378
// version 1.1, written by --Hyde, 13 April 2020
// - see https://support.google.com/docs/thread/39585956
// version 1.0, written by --Hyde, 4 February 2020
// - see https://support.google.com/docs/thread/27576311
const values
= columnNumber
? sheet.getRange(1, columnNumber, sheet.getLastRow() || 1,
1).getDisplayValues()
: sheet.getDataRange().getDisplayValues();
for (var row = values.length - 1; row >= 0; row--) {
if (values[row].join('')) {
break;
}
}
return row + 1;
}
function Test() {
var sSheet = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = sSheet.getSheetByName("Refinery");
var lastRow = srcSheet.getLastRow();
var range = srcSheet.getRange("E1:G" + lastRow);
var values = range.getValues().map(([cells, day, hour]) => {
if ((day != "") || (day != null) && (hour != "") || (hour != null) &&
(cells == "-")) {
var neudate = new Date();
var Btag = 1000 * 60 * 60 * 24 * day
var Bstd = 1000 * 60 * 60 * hour
var DATUM = (new Date(neudate.getTime() + Btag + Bstd))
DATUM = Utilities.formatDate(DATUM, "GMT+2", "dd.MM.yyyy HH:mm:ss")
return [DATUM];
}
return [cells]
});
range.offset(0, 0, values.length, 1).setValues(values);
}
function paste() {
var sheetNameToWatch = "Sheet 2";
var sheetNameToMoveTheRowTo = "Sheet 1";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == sheetNameToWatch && range.getColumn()) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1,
sheet.getLastColumn()).copyTo(targetRange, {contentsOnly:true});
}
}
aaaa
bbbb