Zamparo Posted September 15, 2013 at 09:11 PM Report #524651 Posted September 15, 2013 at 09:11 PM (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 September 15, 2013 at 09:22 PM by Zamparo
brunobola Posted September 24, 2013 at 11:51 PM Report #525816 Posted September 24, 2013 at 11:51 PM É 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.
Zamparo Posted September 25, 2013 at 12:29 PM Author Report #525900 Posted September 25, 2013 at 12:29 PM 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!!!!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now