Jump to content


Photo

Exportar Excel


  • Faça o login para participar
9 replies to this topic

#1 calcio

calcio

    PHP é oq manda! Heavy Metal na veia!

  • Usuários
  • 377 posts
  • Sexo:Não informado
  • Interesses:Desenvolvimento de websites e Gerenciamento de Projetos

Posted 11/07/2005, 14:50

Galera preciso de um script q exporte em formato XLS.

Ao clicar em um botão ele abir uma outra página com o XLS gerado!
Abraços Cálcio Heavy Metal

#2 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 11/07/2005, 15:40

"Uma maneira simples de exportar uma página para formato XLS (Excel) é colocar a seguinte linha de comando em ASP, no cabecalho do documento (HTML):

Response.ContentType="application/vnd.ms-excel"

Vale a pena lembrar que a pessoa que está navegando pelo site e dispara a exportação para Excel, deve tê-lo instalada em seu sistema operacional.

Uma outra maneira de criar um arquivo XLS é acessar o objeto "Scripting.FileSystemObject" gerar um arquivo texto e salvá-lo com a extensão ".xls". O documento gerado deve ter a formatação e o conteúdo da(s) tabela(s) a ser(em) gerada(s) - essa formatação pode ser feita através de tags HTML (<table></table>) e podem ser usadas propriedades e atributos como "bgcolor" ou "<font></font>" para o estilo das rows e cells. Lembre-se de configurar as permissões de escrita para o OS no diretório do servidor onde o XLS será gravado e tamém a permissão de escrita do mesmo diretório no IIS, além da permissão de rodar scripts.
"
Eduardo Batista

#3 calcio

calcio

    PHP é oq manda! Heavy Metal na veia!

  • Usuários
  • 377 posts
  • Sexo:Não informado
  • Interesses:Desenvolvimento de websites e Gerenciamento de Projetos

Posted 11/07/2005, 16:01

vc tem algum exemplo disso?
Nunca trabalhei com isso!
Abraços Cálcio Heavy Metal

#4 ilanocf

ilanocf

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 22/05/2006, 13:03

edmais,

Tentei fazer aqui, mas alguns registros (com til, cedilha, ...) estão vindo em um formato diferente, por exemplo, Nome da Mãe vem Nome da Mãe, como isso pode ser corrigido?

#5 Worm

Worm

    Veterano

  • Ex-Admins
  • 1343 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Obter o maximo conhecimento.

Posted 22/05/2006, 17:32

http://www.imasters..../asp_para_excel

#6 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 21/08/2006, 16:36

eu não consegui adaptar pra access/msde
alguem pode me ajudar?
esse link usa bd oracle! :(
e queria que ao clicar, invez de abrir via navegador, força-se para "salvar como..."
ajudem-me please! :)

#7 Marcelo Barcellos

Marcelo Barcellos

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado

Posted 22/08/2006, 13:26

Colega.

Se o servidor possuir o objeto do Excel instalado, tem mais essa idéia, que é melhor e mais rápida que as outras, segue abaixo
'Gerando a Planilha do Excel, através de um recordset
Sub gerarPlanilhaPorRecorset(ORs)
Dim strMetodo
Set objEx = Server.CreateObject("Excel.Application")
Dim oWbook
Dim oWSheet
Dim i2
Dim i
objEx.Visible = False
objEx.DisplayAlerts = False
objEx.UserControl = False

Set oWbook = objEx.Workbooks.Add
Set oWSheet = oWbook.Sheets.Add

'=========================
'INTRODUZ CABECALHO
'=========================
For i = 0 To ORs.Fields.Count - 1
	oWSheet.Cells(1, i + 1) = ORs.Fields.Item(i).Name
Next

'=========================
'COPIA RECORDSET PARA A PLANILHA
'=========================
Call oWSheet.Cells(2, 1).CopyFromRecordset(ORs)
objEx.Selection.CurrentRegion.Columns.AutoFit
objEx.Selection.CurrentRegion.Rows.AutoFit
  



ds_nome_relatorio = Server.MapPath("meurelatorio.xls")
oWSheet.SaveAs ds_nome_relatorio
oWbook.Close

Set oWSheet = Nothing
Set oWbook = Nothing
Set objEx = Nothing
End Sub

Após a criação do arquivo, vamos forçar o Download´
Sub DownloadFilePorNome(ByVal PathNomeArquivo)

Dim objFile As New ADODB.Stream
Dim BlobFile As Variant
Dim strFile As String
Dim posI As Long

posI = InStrRev(PathNomeArquivo, "\")
strFile = Mid(PathNomeArquivo, posI + 1, Len(PathNomeArquivo))

objFile.Type = adTypeBinary
objFile.Open
objFile.LoadFromFile PathNomeArquivo
BlobFile = objFile.Read
objFile.Close


OResponse.Clear
OResponse.ContentType = "application/octet-stream"
OResponse.AddHeader "Content-Disposition", "attachment;filename=" & strFile
OResponse.AddHeader "Content-Length", LenB(BlobFile)
OResponse.BinaryWrite BlobFile
OResponse.End
Set objFile = Nothing
End Sub

É isso aí !!!!
Lembrando que esta ultima função server para qualquer tipo de arquivo. E que ela não deve ser conjugada com nenhum tipo de "buffer" antes dela ser executada.

#8 knoxville

knoxville

    Backdoor Man

  • Usuários
  • 951 posts
  • Sexo:Masculino
  • Localidade:Itajaí - SC

Posted 22/08/2006, 15:55

hmmmm
vlw Marcelo Barcellos! :)
tem como explicar um pouquinho mais? tipo o ORs daonde veio e tal?
vlw! (y)
:D

#9 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 22/08/2006, 18:40

acredito que os Os antes dos Response, virem por erro de digitação ;p

[]s

#10 Marcelo Barcellos

Marcelo Barcellos

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado

Posted 23/08/2006, 11:20

Colegas

1 - O "ORS" é um recordset qualquer que precisa ser populado no Excel
2 - "OResponse", ocorreu pois utilizei o VB para utilizar a função e portanto, devo criar um novo objeto para simular o Response do AspContext.




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq