We spent three days prior to the cruise in Barcelona. We were stayng in the hotel. Barcelona is a nice city with many places to visit. Flamenco show in the Pueblo Espanol was the best!
Train from port to the city was good and not expensive. We took port shuttle to the train station. Still the stop is too short for Rome sightseeing tours.
Port area and the city is too dirty. Good thing - you can take City Sightseeing bus tour(Hop-On/Off) from the port. We also took ferry to Capri. It was our best cruise experience.