Ir para conteúdo

POWERED BY:

Arquivado

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

Felipe Fonseca

Gerar Varias Planilhas .XLS

Recommended Posts

Olá a Todos,

 

Estou querendo gerar planilhas em Excel apartir de um RS.

 

Por EX...

Tenho .... 100 Linhas no RS ..

e a cada 10 Linhas ... tenho um Nome tipo assim

 

Nome|RestoDasColunas

a|xx

a|xx

a|xx

a|xx

a|xx

b|xx

b|xx

b|xx

b|xx

b|xx

 

Bom ... ate ai beleza ... faria um Loop no RS ... com um IF pra verificar se a proxima eh = a Anterior ....

ai gostaria que fosse criado uma xls pra cada. No Caso do exemplo seria 2 planilhas, "A.xls" e "B.xls" ....

 

Teria como eu fazer isso ?

Sei que tem o comando que nao lembro qual ... q faz o html e manda pro excel.... mas gostaria que fosse criado automatico as planilhas, e salvando em uma pasta da maquina, pois sao mais de 40 Nomes diferentes na Planilha ....

 

Deu pra vcs sacarem o q q ta rolando /???!

 

Obrigado a Todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao eh como criar .....

Eh como .... criar varias .... salvando em uma pasta apartur de um RS

 

Resumindo. Tenhi um RS. q te q ser criados varios relatorios em XLS. Ai faria um Loop com um IF e o ASP salvaria as planinhas em uma pasta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer criar uma planilha para cara registro, o procedimento é o mesmo. A única diferença é que você vai fazer isso dentro do while, enquanto você estiver lendo os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao eh ... pq se eu colocar aquela TAG de "vnd.excel" ... ele pergunta se quer abrir ow salvar ... e eu queroque salve automaticamente uma monte de plan em uma pasta!!

 

Achei isso aki ...

 

<%
' Excel Maker 1.0 by RaS! (ras78@libero.it), ver 1.0
' --------------------------------------------------
' This is a free and simple example about create Excel files with asp
' You need the Microsoft Excel installed on you machine to use the
' object. Without this one, you cannot create any .xls file.
' Please report any bugs or feedback at ras78@libero.it

Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Application.Visible = True
Set ExcelBook = ExcelApp.Workbooks.Add

ExcelBook.Worksheets(1).Cells(2, 2).Font.Name = "Verdana"
ExcelBook.Worksheets(1).Cells(2, 2).Font.Size = 10
ExcelBook.Worksheets(1).Cells(2, 2).Font.Italic = true
ExcelBook.Worksheets(1).Cells(2, 2).Value="Hello world"
ExcelBook.Worksheets(1).Cells(2, 2).HorizontalAlignment = 1
ExcelBook.Worksheets(1).Cells(2, 2).Font.Color = RGB(0,0,0)

ExcelBook.SaveAs "c:\yourfile.xls"
ExcelApp.Application.Quit
Set ExcelApp = Nothing 
%>

So que ta dando Erro nessa linha aki oh ...

 

Set ExcelApp = CreateObject("Excel.Application")

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A0046)

Permissão negada: 'CreateObject'

/Portal/@Apuracao/apu_00.asp, line 9

 

como arrumo essa permiossao ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, utilizando vnd.excel vai pedir pra salvar. Acho que você terá que utilizar algum componente.

 

Esse código que utilizou é de VBScript. Por isso você não consegue utilizá-lo ao IIS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei isso gerou e gravou ..... na pasta ...

Agora vou adptar a minha necessidade pra ver se funcina.

 

<html>
<title>Criando arquivos MS-Excel no servidor</title>
<body bgcolor="#FFFFFF">
<%

' Define o nome do banco de dados a ser consultado
accessdb="_database.mdb" 

' Define a string de conexao com o Access
cn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(accessdb)
' Cria um objeto recortdset
Set rs = Server.CreateObject("ADODB.Recordset")

' define a instrução SQL para obter os dados da tabela
sql = "select * FROM BaseDia" 

' Executa o SQL
rs.Open sql, cn
' Move para o primeiro registro
rs.MoveFirst
' define o nome do arquivo XLS a ser criado
arquivo_excel= "classificacao.xls"
' cria o arquivo file system object
set fso = createobject("scripting.filesystemobject")
'  Cria um arquivo texto no servidor com o nome do time no mesmo diretorio da aplicacao 
Set act = fso.CreateTextFile(server.mappath(arquivo_excel), true)
' define o cabecalho da tabela
act.WriteLine("<html><body>")
act.WriteLine("<table border=""1"">")
act.WriteLine("<tr>")
act.WriteLine("<th nowrap>Time</th>")
act.WriteLine("<th nowrap>Pontos</th>")
act.WriteLine("<th nowrap>Jogos</th>")
act.WriteLine("<th nowrap>Vitorias</th>")
act.WriteLine("<th nowrap>Empates</th>")
act.WriteLine("<th nowrap>Derrotas</th>")
act.WriteLine("</tr>")
' No laco For next vamos criar uma linha para cada time com os dados da sua classificacao
for documents= 1 to 5
Act.WriteLine("<tr>")
act.WriteLine("<td align=""right"">" & rs("Nun_Veic") & "</td>" )
act.WriteLine("<td align=""right"">" & rs("Local") & "</td>" )
act.WriteLine("<td align=""right"">" & rs("Carga_Descarga") & "</td>")
act.WriteLine("<td align=""right"">"& rs("Dt_Hr_Inicio") & "</td>")
act.WriteLine("<td align=""right"">"& rs("Dt_Hr_Fim") & "</td>")
act.WriteLine("<td align=""right"">"& rs("Dt_Hr_Fim") & "</td>")
act.WriteLine("</tr>")
' move para o proximo registro
rs.movenext
' volta a criar a proxima linha da tabela para o time
next
' fecha as tags HTML
act.WriteLine("</table></body></html>")
' fecha o objeto Excel
act.close
response.write "Classificação do Brasileirão - 2004 : Cinco primeiros colocados. (Formato MS-Excel)<P>"
response.write "Para ver classificação no Excel clique no link abaixo <P>"
' Escreve um link para o novo arquivo XLS criado
response.write "<a href='classificacao.xls'>Classificação</a> (.xls) foi criado em " & now() & "<br>"
%>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que ele faz é criar um arquivo texto com o código html e salvar com a extensão XLS.

 

Muito bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon .. POde me ajudar a criar essa função / Logica ...

pq o que qu pensei ...

 

Faria uma função ... CriaXls ... contendo o codigo acima ..

 

Aí ;.; faria um Loop no RS ...

 

' Loop Principal pra percorrer todo RS
WHILE NOT rs.EOF
   
  'Loop Secundario pra Percorrer Enqunto  a Coluna Conc  for igual a debaixo
   WHILE ConcAtual = ConcProx
	   Criaria um Vetor Amazenando as Variasveis das Colunas ....
   Loop
   
	'Aki ... chamria a funçao .... pra passar o vetor acima, e salvar o xls

   

WEND

Meio complicadinho neh .... A Logica seria essa mesmo ?? Teria alguma logica mais inteligente?? Pode me ajudar com ela ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se isso lhe atende:

<%
sub criaXls(campo1, campo2, nomeDoArquivo)
	set FSO = Server.CreateObject("scripting.filesystemobject")
	set arquivoNovo = fso.CreateTextFile(Server.Mappath("../relatorios/" & nomeDoArquivo), true)
	
	with arquivoNovo
		.WriteLine("<html><body>")
		.WriteLine("<table border=""1"">")
		.WriteLine("<tr bgcolor=""#C0C0C0"">")
		.WriteLine("<th nowrap>Codigo</th>")
		.WriteLine("<th nowrap>Nome</th>")
		.WriteLine("</tr>")
		
		.WriteLine("<tr>")
		.WriteLine("<td align=""left"">"& campo1 & "</td>")
		.WriteLine("<td align=""left"">"& campo2 & "</td>")
		.WriteLine("</tr>")
		
		.WriteLine("</table></body></html>")
		.close
	end with
	
	set arquivoNovo = nothing
	set FSO = nothing
end sub

set rs = Server.CreateObject("ADODB.Recordset")

sql = "SELECT cdcampo, nmcampo FROM tabela ORDER BY cdcampo"
rs.open sql, ObjConexao

if not rs.eof then
	while not rs.eof then
		arquivoExcel = rs("cdcampo") & "_" & nomedoarquivo & ".xls"
		
		call criaXls(rs("cdcampo"), rs("nmcampo"), arquivoExcel)
		
		rs.movenext
	wend
end if
rs.close
set rs = nothing
%>

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.