Created
September 4, 2024 15:06
-
-
Save KnightsWhoSayNi0/9d71086dfe8d332f772dece103efc986 to your computer and use it in GitHub Desktop.
Inverse schedule excel script — oddly specific problem
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function main(workbook: ExcelScript.Workbook) | |
{ | |
const days = workbook.getWorksheet("days"); | |
const out = workbook.getWorksheet("out"); | |
const dayRange: ExcelScript.Range = days.getRange("A2:B71"); // first sem | |
const outRange: ExcelScript.Range = out.getRange(); // whole sheet | |
let outIndex = 1; | |
for (let i = 0; i <= 69; i++) | |
{ | |
let day = parseInt(dayRange.getCell(i, 0).getText(); // parse day from iterated row | |
let date = dayRange.getCell(i, 1).getText(); | |
if (day % 2) | |
{ | |
newEvent(outRange, outIndex++, day, date, "8:30", "15:30"); | |
} else | |
{ | |
// i could make this much better by taking data from the schedule table but this is a 2 use thing so idc | |
switch (day) | |
{ | |
case 2: | |
newEvent(outRange, outIndex++, day, date, "8:30", "11:35"); | |
break; | |
case 4: | |
newEvent(outRange, outIndex++, day, date, "8:30", "10:15"); | |
newEvent(outRange, outIndex++, day, date, "14:00", "15:30"); | |
break; | |
case 6: | |
newEvent(outRange, outIndex++, day, date, "11:35", "15:30"); | |
break; | |
case 8: | |
newEvent(outRange, outIndex++, day, date, "10:15", "14:00"); | |
break; | |
} | |
} | |
} | |
} | |
function newEvent(outRange: ExcelScript.Range, index: number, | |
day: number, date: string, start: string, end: string) | |
{ | |
outRange.getCell(index, 0).setValue("In School"); // title | |
outRange.getCell(index, 1).setValue("Day " + day); // desc | |
outRange.getCell(index, 2).setValue(date); | |
outRange.getCell(index, 3).setValue(start); | |
outRange.getCell(index, 4).setValue(end); | |
outRange.getCell(index, 5).setValue("4"); // show as busy | |
outRange.getCell(index, 6).setValue("School"); // category | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment