The attack took place Monday morning at the Joan Fuster High School in Sant Andreu, Barcelona, eastern Spain at around 9:15 am, local media are reporting.
A spokesman for Barcelona's Mosses D'Esquadra police told local press that: "We can confirm that a teacher has died and a suspect has been arrested. We are not in a position at the moment to confirm if that person is male, female, or ex-pupil."
Emergency services and police have converged on the school. Among those believed to be injured is a 14-year-old, who suffered a wound to the chest, and was sent to a local hospital. La Vanguardia reports that the four people who were injured are all in stable condition.
The suspect is believed to have forced his way into the school, before proceeding to attack teachers and students across several classrooms. Panicked teachers confined their students in their classes.
The suspect has been detained by police; a motive for the grisly attack has not yet been determined.