Exporting to CSV and PDF

Exporting to CSV and PDF

Wherever a timetable is displayed (see Viewing by Class / Teacher / Room), its toolbar has two export buttons: Export CSV and Print / Save as PDF. Both run entirely in your browser — there's no server round-trip and nothing is generated on the backend.

Export CSV

Downloads one CSV file (timetable-YYYY-MM-DD.csv) with one row per scheduled lesson instance, columns Day, Start Time, End Time, Class Group(s), Subject, Teacher(s), Room, sorted in calendar order (Monday → Sunday, then by period order within a day) rather than alphabetically.

Two things that surprise people the first time:

  • It always exports the whole timetable, not whatever the on-screen "View by" filter is currently showing. If you're viewing a single teacher's table, the CSV still contains every class group, teacher, and room. There's no way to export a filtered subset — open the file in a spreadsheet and filter/sort there if you only need one resource's rows.
  • Co-teaching and combined sessions produce a semicolon-separated cell, not multiple rows — a lesson with two teachers or two class groups appears once, with both names joined by ; in the Teacher(s) or Class Group(s) column.

A teacher who has an Employee ID appears in the Teacher(s) column as "Mr. Smith (T042)"; teachers without one appear by name only. The ID used is the teacher's current one, even for a timetable generated before it was set.

The file is written with a leading UTF-8 BOM specifically so Excel — which otherwise guesses the encoding — renders non-ASCII teacher/class names correctly instead of mangling them.

Print / Save as PDF

This button is a plain window.print() call — literally your browser's own print dialog, styled by this app's print stylesheet so the timetable renders cleanly on paper (or into a PDF if you choose that as the destination). There's no separate PDF-generation step or library involved. To get a PDF, pick "Save as PDF" (or "Microsoft Print to PDF") as the destination in the dialog that opens, rather than sending it to a physical printer.

Two behaviors worth knowing:

  • It prints exactly what's on screen, respecting the current "View by" filter — unlike CSV export. Filtered to one class group, only that class group's table prints; left on "All", every resource's table prints one after another (each table is kept from splitting across a page break where possible).
  • Colors always print, even if your browser's print dialog has a "print backgrounds"/"background graphics" option turned off elsewhere — the print stylesheet forces color printing so the subject color-coding and BREAK-period highlighting match what you see on screen.

Only the timetable grid itself is included in the printed/PDF output — the page's sidebar, header, and the "View by"/export toolbar are all excluded automatically, so you don't get the app's navigation chrome in your printout.