The shaggy-haired centre back damaged the knee in Saturday's La Liga match at home to Espanyol and will have the operation next Saturday, Barca said in a statement on their website (www.fcbarcelona.com) on Tuesday.
"The estimated time he will be out of action is around six weeks," the statement said, adding that the talismanic club captain would be unavailable for the King's Cup final against Athletic Bilbao on May 25.
The loss of the highly-respected Puyol will be a major blow to the world and European champions, who begin the defence of their continental title against Italy on June 10.
The 34-year-old has been a reliable presence in the Spanish back line for more than a decade, making 99 appearances for his country and scoring the winning goal in the 1-0 semi-final victory against Germany at the 2010 World Cup.
"That's football, it's an extremely significant loss for us," coach Vicente del Bosque was quoted as saying in Marca sports daily.
"Quite apart from whether or not it disrupts my plans, he is a charismatic lad and very important (to the team) and was only a step away from making his 100th appearance," Del Bosque added. "He has been on great form, it's a shame."
Puyol's absence will likely mean that Del Bosque deploys Real Madrid's Sergio Ramos alongside Barca's Gerard Pique in central defence, with Javi Martinez of Athletic Bilbao another option.
Spain also face Ireland and Croatia in Group C at the Euro finals in Poland and Ukraine.