Jump to content

[Resolvido] Erro ao importar Planilha Excel para DataGridView


Recommended Posts

Posted (edited)

Olá estou com um problema ao importar planilhas do Excel, ele só está importando algumas planilhas em outras fala que não está no formato esperado e em outras fala que o 'Sheet1$' não é um nome válido.

Sou iniciante e não consegui achar a cousa do erro segue parte do código abaixo onde apresenta o erro.

Desde já agradeço...

private void button3_Click(object sender, EventArgs e)
 {
	 ofd.Filter = "Arquivo Excel (.xls.xlsx)|*.xls;*.xlsx|Todos os Arquivos|*.*";
	 if (ofd.ShowDialog() == DialogResult.OK)
	 {
		 /*TxBoxArquivo.Text = ofd.FileName;
		 string constr = "Provider = MicroSoft.Jet.OLEDB.4.0; Data Source="+ TxBoxArquivo.Text +"; Extended Properties =\"Excel 8.0; HDR=yes;\";";
		 OleDbConnection conn = new OleDbConnection(constr);
		 OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [sheet1$]",conn);
		 DataTable dt = new DataTable();
		 sda.Fill(dt);
		 CargTab.DataSource = dt;*/
			 // Define Caminho completo para ficheiro em STRING.
			 string path = System.IO.Path.GetFullPath(ofd.FileName);
			 // Define pedido a fazer em forma de STRING.
			 string query = "SELECT * FROM [sheet1$]";
		 // Define ligação como nova ligação OleDB.
		 OleDbConnection conn = new OleDbConnection();
		 // Define linha de comunicação com todos os dados recuperados até aqui.
		 conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ofd.FileName + ";Extended Properties= \"Excel 12.0 Xml;HDR=YES;IMEX=1\";";
		 // Define adaptador para pedido "query" (tipo string) ao adaptador que comunica com o ficheiro excel através da ligação CONN definida anteriormente.
		 OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);
		 DataSet dataSet = new DataSet();
		 adapter.Fill(dataSet, "[sheet1$]");
		 CargTab.DataSource = dataSet.Tables[0];
	 }
else{
MessageBox.Show("Erro ao encontrar arquivo!!!!!");
}
}

Edited by Zamparo
  • 2 weeks later...
Posted

É um velho problema que tem a haver com o tipo de interops do Excel, se usares o Microsoft ACE do 2007 funciona quase sempre, mas para resolveres, podes sempre usar apenas ficheiros .xls e não .xlsx que funcionam sempre.

Posted

Problema resolvido, estava tendo problemas com conexão, pois passava o nome da aba da planilha errado, coloquei mais um campo para poder ser digitada o nome da planilha e funcionou.

Obrigado a todos que ajudaram!!!!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.