in read_input/read/google-sheet-read.js [177:208]
function rangeFilterHeader(namedRanges, verticalRangeName) {
const dataFilters = [];
const rangeRowNameMap = {};
for (const namedRange of namedRanges) {
const rangeName = namedRange.name;
const nr = namedRange.range;
const sheetId = namedRange.range.sheetId || 0;
if (!rangeRowNameMap[sheetId]) {
rangeRowNameMap[sheetId] = {};
}
const myRangeId = `${nr.startRowIndex}:${nr.startColumnIndex}`;
rangeRowNameMap[sheetId][myRangeId] = rangeName;
// Create a data filter to get only the first row/column (header)
let gridRange = {
sheetId: sheetId,
startRowIndex: nr.startRowIndex,
startColumnIndex: nr.startColumnIndex,
};
if (verticalRangeName.includes(rangeName)) {
// verticalRange
gridRange.endRowIndex = nr.endRowIndex;
gridRange.endColumnIndex = nr.startColumnIndex + 1; // Include only the first column
} else {
// horizontalRange
gridRange.endRowIndex = nr.startRowIndex + 1; // Include only the first row
gridRange.endColumnIndex = nr.endColumnIndex;
}
dataFilters.push({ gridRange: gridRange });
}
return [dataFilters, rangeRowNameMap];
}