RETORNAR PLANILHAS DO EXCEL

F001E 01/04/2013 17:02:40
#421363
Bom tarde todos....
Gostaria de saber como faz para ler todas as Planilhas do arquivo do Excel.
No anexo tem essas 3 Planilhas e gostaria de ler essas 3 planilhas e para jogar num list..
KERPLUNK 01/04/2013 17:22:53
#421365
Bom, posso passar um exemplo em VB6, usando o ADOX, pode ajudar...

Dim cat As New adox.Catalog
Dim tblList As New adox.Table
cat.ActiveConnection = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\diversos.xlsx;Extended Properties=[Ô] & Chr(34) & [Ô]Excel 12.0 Xml;HDR=YES;[Ô] & Chr(34)

For Each tblList In cat.Tables
If tblList.Type <> [Ô]VIEW[Ô] Then
Combo1.AddItem tblList.Name & vbTab & tblList.Type
End If
Next


O exemplo usa ADOX, portanto adicione a referência. Com ADO.NET deve ser algo parecido...
JONATHANSTECKER 01/04/2013 18:09:09
#421366
Achei uma função que eu uso em um sistema antigo aqui... Não é o mais ideal osar como objeto, mas funciona.

Function GetWorkSheets() As String

Dim sbWorkSheets As New StringBuilder
Dim oExcel As Object = CreateObject([Ô]excel.application[Ô])
Dim oWorkBook As Object = oExcel.Workbooks.Open([Ô]D:\Pasta1.xlsx[Ô])

[ô]Exibe o aplicativo Excel
oExcel.Application.Visible = False

For Each oWorkSheet As Object In oWorkBook.Worksheets
sbWorkSheets.Append(oWorkSheet.Name).AppendLine()
Next

oExcel.Quit()

Return sbWorkSheets.ToString

End Function
JONATHANSTECKER 01/04/2013 18:15:23
#421367
Desculpe, não me atentei que este tópico é para C#.

public string GetWorkSheets()
{

StringBuilder sbWorkSheets = new StringBuilder();
object oExcel = Interaction.CreateObject([Ô]excel.application[Ô]);
object oWorkBook = oExcel.Workbooks.Open([Ô]D:\\Pasta1.xlsx[Ô]);

//Exibe o aplicativo Excel
oExcel.Application.Visible = false;

foreach (object oWorkSheet in oWorkBook.Worksheets) {
sbWorkSheets.Append(oWorkSheet.Name).AppendLine();
}

oExcel.Quit();

return sbWorkSheets.ToString;

}
F001E 02/04/2013 10:02:48
#421402
Montei essa programação abaixo e funcionou certo, trouxe as planilhas que eu queria....


Mas trouxe também essas planilhas que no final tem Print_Area, Print_Titles, FilterDatabase que eu não sei de onde vem isso.
Alguem sabe o porque disso ?

ALEVALE 02/04/2013 13:44:14
#421418
Resposta escolhida
Se eu não me engano é porque deve estar criado [Ô]a área de impressão[Ô] dentro do documento,
Já tentou criar um arquivo novo no Excel e importar o mesmo para ver o erro permanece ?
F001E 02/04/2013 13:50:56
#421421
é por causa disso mesmo, tem uma área de impressão dentro do documento....
vou falar para o cliente gerar o .xls sem a área de impressão...
Tópico encerrado , respostas não são mais permitidas