Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emerson Jose da Silva

Gerar arquivo XLS em ASP

Recommended Posts

Boa tarde galera,

Sou novo no fórum e novo em programação estruturada,

Alguém poderia me ajudar com essa questão? preciso gerar um xls a partir de informações do banco,

Ele gera da forma correta mas o arquivo fica corrompido! onde estou errando? abraços.

Código:

 

'---VERIFICA SE EXISTE ALGUM FUNCIONARIO COM ESSA OPERADORA---TICKET CAR---'

sqlExisteOperadora = "SELECT * FROM (SELECT * FROM tbItensPedido WHERE ("
For contTicketCar=LBound(arrayPedido) to UBound(arrayPedido)
arrayCodPedido = split(arrayPedido(contTicketCar),"-")
codPedido = arrayCodPedido(0)
sqlExisteOperadora = sqlExisteOperadora & " codPedido = " & codPedido
if contTicketCar = UBound(arrayPedido) then
sqlExisteOperadora = sqlExisteOperadora & ")"
else
sqlExisteOperadora = sqlExisteOperadora & " OR "
end if
next
sqlExisteOperadora = sqlExisteOperadora & ") as tbAux WHERE codOperadora = 20"
response.Write("<br/>")
response.Write(sqlExisteOperadora)
response.Write("<br/>")
set R---isteOperadora = con.execute(sqlExisteOperadora)
'*************************************************'
if not R---isteOperadora.eof then
sqlEnderecoCliente = "SELECT endereco, numero, complemento, cidade, estado, bairro, cep, contato1 FROM tbEnderecosClientes WHERE codCliente = " & R---isteOperadora("codCliente")
set RSEnderecoCliente = con.execute(sqlEnderecoCliente)
enderecoCliente = " " & RSEnderecoCliente("endereco") & " "
enderecoCliente = mid(enderecoCliente,1,35)
numEnderecoCliente = RSEnderecoCliente("numero") & " "
numEnderecoCliente = mid(numEnderecoCliente,1,6)
complemento = RSEnderecoCliente("complemento") & " "
complemento = mid(complemento,1,10)
cidade = RSEnderecoCliente("cidade") & " "
cidade = mid(cidade,1,25)
estado = RSEnderecoCliente("estado") & " "
estado = mid(estado,1,2)
bairro = RSEnderecoCliente("bairro") & " "
bairro = mid(bairro,1,15)
cep = RSEnderecoCliente("cep") & " "
cep = left(cep,5)
complementoCep = RSEnderecoCliente("cep")
complementoCep = right(complementoCep,3) & " "
contato = RSEnderecoCliente("contato1") & " "
contato = mid(contato,1,20)
end if
'*************************************************'
if not R---isteOperadora.eof then
'--------------------------------------------
'GERAR ARQUIVO DE PEDIDOS - CAR
'dim fs, f
set fs=Server.CreateObject("Scripting.FileSystemObject")
nomeArquivo = "CAR-"& replace(inverteData(Date),"/","")& replace(Time(),":","") &".xls"
set f=fs.CreateTextFile(Server.MapPath("..\arquivosOperadoras\Files\" & nomeArquivo))
RSArquivoPedido.moveFirst
cont = 1
if not RSArquivoPedido.eof then
f.WriteLine("<html><body>")
f.WriteLine("<table border=""1"">")
f.WriteLine("<tr>")
f.WriteLine("<th colspan = 5>DISTRIBUIÇÃO DE CRÉDITO</th>")
f.WriteLine("<tr>")
f.WriteLine("<th nowrap>* NÚMERO DO CARTÃO</th>")
f.WriteLine("<th nowrap>IDENTIFICAÇÃO</th>")
f.WriteLine("<th nowrap>NOME/PLACA</th>")
f.WriteLine("<th nowrap>STATUS DO CARTÃO</th>")
f.WriteLine("<th nowrap>* VALOR DO CRÉDITO (R$)</th>")
f.WriteLine("</tr>")
while not RSArquivoPedido.eof
cont = cont + 1
if RSArquivoPedido("codOperadora") = 20 then
sqlCartao = "SELECT * FROM tbFuncionariosClientes WHERE codFuncionario = " & R---isteOperadora("codFuncionario")
set RSCartao = con.execute(sqlCartao)
'response.Write(sqlCartao)
'-------------------------------------------
'Numero Cartao
numCartaoVC = RSCartao("numCartaoVC")
numCartaoVC = replace(numCartaoVC,".","")
numCartaoVC = replace(numCartaoVC,"-","")
'-------------------------------------------
'-------------------------------------------
'MATRICULA
matricula = RSArquivoPedido("cpf")' & " "
matricula = replace(matricula,".","")
matricula = replace(matricula,"-","")
'matricula = Mid(matricula,1,12)
'-------------------------------------------
'-------------------------------------------
'VALOR
valor = "000000000" & RSArquivoPedido("total")
valor = replace(valor,",","")
valor = replace(valor,".","")
'valor = right(valor,9)
'-------------------------------------------
'-------------------------------------------
'NOME DO FUNCIONARIO
nome = ucase(RSArquivoPedido("nome"))' & " "
'nome = Mid(nome,1,23)
'-------------------------------------------
f.WriteLine("<tr>")
f.WriteLine("<td align=""right"">" & numCartaoVC & "</td>" )
f.WriteLine("<td align=""right"">" & matricula & "</td>" )
f.WriteLine("<td align=""right"">" & nome & "</td>")
f.WriteLine("<td align=""right"">"& "ATIVO" & "</td>")
f.WriteLine("<td align=""right"">"& valor & "</td>")
f.WriteLine("</tr>")
'f.WriteLine("Numero do Cartão ; Identificação ; Nome/Placa; Status ; Valor")
'f.WriteLine(numCartaoVC &";"& matricula &";"& nome &";"& "ATIVO" &";"& valor)
end if
RSArquivoPedido.moveNext
wend
f.WriteLine("</table></body></html>")
end if
f.close
set f=nothing
set fs=nothing
'--------------------------------------------
'--------------------------------------------
'-----GRAVA REGISTRO DO ARQUIVO NO BANCO-----
sqlNumPedidos = "SELECT codPedido FROM ("& sqlExisteOperadora &") as tbAuxPedidos GROUP BY codPedido"
set RSSqlNumPedidos = con.execute(sqlNumPedidos)
numPedidos = ""
if not RSSqlNumPedidos.eof then
while not RSSqlNumPedidos.eof
numPedidos = numPedidos & " (" & RSSqlNumPedidos("codPedido") & ") "
RSSqlNumPedidos.moveNext
wend
end if
valores = Array("'" & nomeArquivo & "'", "'" & numPedidos & "'","'Ticket Car'","'1'","'N'")
operacao "INSERT",tabela,campos,valores,""
'--------------------------------------------
end if

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o caminho que esta sendo salvo ?

esse é o código inteiro ???

ou vc esta criando apenas uma tabela e não um ContentType = "application/vnd.ms-excel". tente esse código e teste.

<%@ Language="VBScript" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Gerando Planilhas em EXCEL</title>
</head>
<body>
<%   
Response.ContentType = "application/vnd.ms-excel" 

Response.AddHeader "Content-Disposition", "attachment;filename=PlanilhaVisitantesBuscaAvancada.xls"
%>
<table width="200" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>Teste 01</td>
    <td>Teste 02</td>
  </tr>
  <tr>
    <td>Teste 03</td>
    <td>Teste 04</td>
  </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

para ser xls tem que colocar o ContentType = "application/vnd.ms-excel"

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc esta testando no server ou no localhost ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dentro do server, qual o nome do arquivo e extensão que esta sendo gerado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

O nome do arquivo está nessa linha

 

nomeArquivo = "CAR-"& replace(inverteData(Date),"/","")& replace(Time(),":","") &".xls"

 

E como pode ver ja especifico que quero no formato XLS,

 

Mas ele apenas entende que é um HTML até ai tudo bem,

Só que ao abrir o arquivo nenhuma formatação é aceita, eu inclusive crie classes CSS dessa forma

 

.DATA {mso-number-format:"dd\/mm\/yyyy"}

.NUMERO {mso-number-format:"0"}
.CONTABIL {mso-number-format:"currency"}
.TEXTO {mso-number-format:\@}

 

E coloquei no momento em que os dados esta sendo gravados por exemplo :

 

TEXTOf.WriteLine("<td align=""right"" class=""TEXTO"">" & numCartaoVC & "</td>" )

 

E mesmo assim nao adiantou, estou ficando perdido rsrsrsr

 

Sou novato desculpe por ser tão ignorante mas onde estou errando???

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo esse codigo cria tudo que você precisa.....

 

<%
Response.ContentType = "application/vnd.ms-excel"
dim area, strSQL, dt_inicio, dt_fim
dt_inicio = Request.Form("dt_inicio")
dt_fim = Request.Form("dt_fim")
area = Request.Form("area")
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.ConnectionString = "Provider=SQLNCLI10.1;server=servidor\mssql2008A;User ID=control;PWD=contro;Initial Catalog=DB_ControleDespesa;Data Source=10.192.244.160"
conexao.open
strSQL=("SELECT B.codarea,B.Funcional_L,B.Funcionario,F.valordespesa,F.descricao_despesa,F.vencimento FROM TB_Base_dados as F inner join TB_relacao_funcionarios as B ON F.Cod_funcional = B.Matricula WHERE F.vencimento Between convert(datetime,'" & dt_inicio & "',103) And convert(datetime,'" & dt_fim & "',103) And B.codarea='" & area & "' GROUP BY B.codarea,B.Funcional_L,B.Funcionario, F.valordespesa, F.descricao_despesa,F.vencimento ORDER BY B.codarea desc")
set objrs=conexao.execute(strSQL)
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<TABLE BORDER=1>
<TR>
<%
'Percorre cada campo e imprime o nome dos campos da tabela
For i = 0 to objrs.fields.count - 1
%>
<TD style="font-family: Verdana;font-size: 12px;background-color: #C0C0C0;font-weight: bold;text-align: center;"><% = objrs(i).name %></TD>
<% next %>
</TR>
<%
'Percorre cada linha e exibe cada campo da tabela
while not objrs.eof
%>
<TR>
<% For i = 0 to objrs.fields.count - 1
%>
<TD VALIGN=TOP><% = objrs(i) %></TD>
<% Next %>
</TR>
<%
objrs.MoveNext
wend
objrs.Close
conexao.close
%>
</TABLE>

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste o arquivo de nosso amigo acima e veja o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.