Gannat is een kanton van het Franse departement Allier. Het kanton maakt deel uit van de arrondissementen Moulins (15), Montluçon (14) en Vichy (12).

Gemeenten
Het kanton Gannat omvatte tot 2014 de volgende 12 gemeenten:

 Bègues
 Biozat
 Charmes
 Gannat (hoofdplaats)
 Jenzat
 Le Mayet-d'École
 Mazerier
 Monteignet-sur-l'Andelot
 Poëzat
 Saint-Bonnet-de-Rochefort
 Saint-Priest-d'Andelot
 Saulzet

Door de herindeling van de kantons bij decreet van 27 februari 2014, met uitwerking op 22 maart 2015, werd het kanton uitgebreid met volgende 29 gemeenten uit de opgeheven kantons Chantelle en Ébreuil:

 Barberier
 Bellenaves
 Chantelle
 Chareil-Cintrat
 Charroux
 Chezelle
 Chirat-l'Église
 Chouvigny
 Coutansouze
 Deneuille-lès-Chantelle
 Ébreuil
 Échassières
 Étroussat
 Fleuriel
 Fourilles
 Lalizolle
 Louroux-de-Bouble
 Monestier
 Nades
 Naves
 Saint-Germain-de-Salles
 Sussat
 Target
 Taxat-Senat
 Ussel-d'Allier
 Valignat
 Veauce
 Vicq
 Voussac

Gannat