I agree with many of the above posters that both words are too extreme for what the very human man really was. This question seems to be more about the mythology and legend that surrounds Columbus.
One side of the legend, that was taught in schools for years and was completely undisputed was that he "discovered" America. In this legend he is the hero of his time. He crossed the ocean knowing the world was round when everyone else thought it was flat. This is all untrue historically but was a common legend taught. In this version he is the hero.
The more current legend has Columbus as the leader of a genocide of Native Americans. He came here and brought violence and slavery and disease that wiped out whole popluations and was the beginning of the long history of terrible times for the native populations of the Americas. All the ills of the Native Americans are traced back to Columbus in this legend. Here he is unquestionably the villian.
The reality is both of these versions are more myth and legend than reality. What the real man set out to do and actually did is much more mundane and impartial than either of these popular mythologies present. He was not intentionally doing either of these things. The fact is the "villain" mythology is the more widely accepted right now, though the hero mythology existed for ages. Popularity at the present time doesn't make either true.
We should not consider Columbus to be either a hero or a villain. He was a man who happened to do things that had a much greater impact on history than he knew they would. A hero or villain is someone who intends great things or bad things and then carries them out. Columbus was neither.
Columbus became famous by accidentally finding the New World while trying to enrich and glorify himself by finding a shorter route to Asia. There is nothing particularly heroic about this. He is sometimes seen as a villain because his discovery led to horrible results for the Native Americans. However, he was not a Hitler who meant to cause suffering and death. He was surely Eurocentric and racist (as we judge these things today) but that is not sufficient reason to call him a villain given that essentially all Europeans were like that at the time.
Columbus was a man of his times. We cannot really think of him as a hero or a villain without thinking teleologically--in other words, through the lens of outcomes he had no way of anticipating. He certainly can't be blamed for the lack of immunity to European disease among natives. But if I absolutely had to make such an ahistorical choice, I would argue that he was a "villain" since some of his abuses of Indians were decried even during his own time, or shortly thereafter. But here again, some who criticized Columbus's treatment of the Indians argued instead for the institution of African slavery. So claiming that Columbus deserves either of these labels is difficult, because history is more complex than that. The only thing we can say with certainty is that for the natives that Columbus encountered and enslaved, he was certainly not a hero.
I would agree that neither word really fits Christopher Columbus. Most historians agree that he didn't "discover" America and he died believing he was in India. I really don't see the heroism there. Moreover, I can't consider him a villain because I don't think he did anything out of malice. He made some decisions I wouldn't have made, but that is judging a man from the 15th century by our standards, which certainly isn't fair to him.
I would say he is a man of great historical significance, but neither a villain or a hero.
Society needs to build up people like Columbus to give itself a sense of history and destiny. We create "heroes" who help us understand where we came from, even if they are not really heroic in the usual sense. It's not unlike the old Greek and Roman mythological traditions. Then, at some point down the road, these heroes are often "exposed" for what they really are, fallible human beings who did things for less than heroic reasons and happened to become famous for it.
I certainly do not agree with many of Columbus’s choices, but I do not think it is always fair to judge historical figures by the standards of modern times. Columbus was doing what was common and expected during his time. He probably did not view the natives he encountered as human, he would have thought they were savages.
I, too, agree that Christopher Columbus should not be identified as either a hero or a villain. Given that some schools still teach that he discovered America may make him look like a villain based upon the "white lie."
When my grandfather was my age, Columbus was a hero. My grandfather says that no one at the time used the word hero, but I think that people at that time thought discovering two new continents was some thing heroic.
Now Columbus is a villain because he killed people with his germs.
Columbus killed people with his germs like modern environmentalists kill people by opposing the use of DDT which would destroy mosquito's which kill people by spreading malaria.