That's just not the right translation.
"Mein Großvater ist aus Spanien." = "My grandfather is from spain."
"My Grandfather is spanish." = "Mein Großvater ist Spanier/spanisch."
You have nearly always more than one way to describe a particular situation. So it is possible to set different nuances of meaning.
Maybe the grandfather's parents were immigrants themselves and the grandfather wouldn't identify himself as a spaniard but as a reimmigrated german? Or it doesn't matter if the granfather is spanish or not because you only wanted to introduce why you know so much about a spanish region (where your grandfather once lived) for example.
You translate correctly if you stay as close as possible to the original text without blurring the meaning.
Please, be reasonable. If my grandfather comes from Spain, he is Spanish. So 'My grandfather is Spanish.' is correct. It's not like 'The cheese comes from Bavaria.' which could mean it has transited via Bavaria, but you surely don't mean that the person's grandfather has come from elsewhere via Spain, do you?