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!
Exportar Excel
Started By calcio, 11/07/2005, 14:50
9 replies to this topic
#1
Posted 11/07/2005, 14:50
Abraços Cálcio Heavy Metal
#2
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.
"
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
Posted 11/07/2005, 16:01
vc tem algum exemplo disso?
Nunca trabalhei com isso!
Nunca trabalhei com isso!
Abraços Cálcio Heavy Metal
#4
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?
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?
#6
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!
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
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
Após a criação do arquivo, vamos forçar o Download´
É 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.
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
Posted 22/08/2006, 15:55
hmmmm
vlw Marcelo Barcellos!
tem como explicar um pouquinho mais? tipo o ORs daonde veio e tal?
vlw!
vlw Marcelo Barcellos!
tem como explicar um pouquinho mais? tipo o ORs daonde veio e tal?
vlw!
#9
Posted 22/08/2006, 18:40
acredito que os Os antes dos Response, virem por erro de digitação ;p
[]s
[]s
#10
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.
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)