Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

leoretorico

[Resolvido] Importar dados do excel para tabela sql server

Mensagens Recomendadas

leoretorico    0
leoretorico

Boa tarde amigos!

Estou desenvolvendo um aplicativo que vai importar dados do excel para o sql server.

Basicamente toda semana o usuário vai fazer o download de um .xls diretamente de um site e clicar em um botão no sistema para importar os dados da planilha para o sql server

Algum de vocês tem um tutorial para me ajudar?

Eu sei importar dados diretamente pelo sqlserver,mas preciso que o app. faça isso para o usuário automaticamente.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
leoretorico    0
leoretorico

Obrigado, nelsonr.

Com certeza vai me ajudar.

Eu encontrei um modo de fazer o que preciso ,mas ainda tenho um problema

Dim excelApplication As New Excel.Application
	Dim excelWrkBook As Excel.Workbook
	excelApplication.Visible = False
	excelWrkBook = excelApplication.Workbooks.Open("C:\Formação - 1º Semestre de 2013.xls")
	excelWrkBook.SaveAs(Filename:="c:\Formação - 1º Semestre de 2013.csv", FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV)

Neste código eu converto xls para csv .(Para futuramente importar no sql server)

Mas o código acima ,apenas converteu a primeira planilha do arquivo

Neste arquivo eu tenho 4 abas : DADOS1 / DADOS 2 /ESTATISTICA / CONTATO

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelsonr    333
nelsonr

Se queres fazer desssa maneira, tens de usar excelWrkBook.Sheets(1).SaveAs, para cada secção.

O mais certo é teres de fazer o cast, algo assim:

DirectCast(excelWrkBook.Sheets(1), Excel.Worksheet).SaveAs(Filename:="c:\Formação - 1º Semestre de 2013.csv", FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV)

Não tenho o VB.NET instalado, mas testei com C# e funciona para o que pretendes.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
leoretorico    0
leoretorico

Obrigado Nelson!

Só mais uma dúvida,pois não posso testar o código agora!

Para converter as outras abas (Sheets) eu poderia fazer algo assim : DirectCast(excelWrkBook.Sheets(1,2,3,4) ???

ou precisaria repetir o código que você me mostrou? :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelsonr    333
nelsonr

Tens de repetir.

Podes é usar um ciclo e passar por todas, começando na 1 até excelWrkBook.Sheets.count.

E tens de ter em atenção de dar um nome único para cada ficheiro a gravar

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
leoretorico    0
leoretorico

Eu fiz assim:

Dim excelSheetToOpen As New OpenFileDialog()
	Dim definicao As String = "Data1"
	Dim definicao2 As String = "Data2"
	excelSheetToOpen.Filter = "Excel 97- 2003 WorkBook (*.xls)| *.xls | Excel 2007 WorkBook (*.xlsx) | *.xlsx | All files (*.*)|*.*"
	excelSheetToOpen.FilterIndex = 3
	excelSheetToOpen.Multiselect = True
	If excelSheetToOpen.ShowDialog() = DialogResult.OK Then


		Dim excelApplication As New Excel.Application
		Dim excelWrkBook As Excel.Workbook
		excelApplication.Visible = False
		excelWrkBook = excelApplication.Workbooks.Open(excelSheetToOpen.FileName)
		DirectCast(excelWrkBook.Sheets(1), Excel.Worksheet).SaveAs(Filename:="C:\" & definicao & ".CSV", FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV)
		DirectCast(excelWrkBook.Sheets(2), Excel.Worksheet).SaveAs(Filename:="C:\" & definicao2 & ".CSV", FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV)
		'excelWrkBook.SaveAs(Filename:="C:\" & definicao & ".CSV", FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV)
		excelWrkBook.Close()

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.