I2C supports multiple devices on the same bus without any additional select lines (work on the basis of device address). SPI requires additional signal (slave select lines) lines to manage multiple devices on the same bus. I2C is better for long-distance. SPI is better for a short distance.