Ir para conteúdo

Arquivado

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

razs

Abrir xlsx em pagina

Recommended Posts

Boas estou a fazer um pequeno file manager nada de mais mas nao estou a conseguir abrir os ficheiros xlsx.

 

O codigo que tenho é este, esta-me a faltar alguma coisa?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <title></title>
    <link href="style.css" rel="stylesheet">
</head>

<body>

<div class="wrapper">

    <header class="header">
        <form style="position:absolute;top:2px;left:2px;">
            <input type="button" value="Close Window" onClick="window.close()" style="float:right;height:40px;">
        </form>
    </header>

    <div class="middle">

        <div class="container">
            <iframe name="_ipageview" id="_ipageview" runat="excel" src="#" style="width:100%;position:absolute;top:0px;right:0px;"></iframe>
        </div>

        
        
        
        
        <aside class="left-sidebar">
            <%
            dim fs,fo,x, endereco
            set fs=Server.CreateObject("Scripting.FileSystemObject")
            set fo=fs.GetFolder(Server.MapPath("/ficheiros/"))
            %>
            
        
            
            <table style="width:100%;float:left;border:1px solid black;">
            <tr>
            <td style="width:5%;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Abrir</b></td>
            <td style="width:79%;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Ficheiro</b></td>
            <td style="width:15%;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Data</b></td>
            
            </tr>
            <%
            dim xx, cor
            xx=0
            for each x in fo.files
            %>
            <tr>
            <td style="width:5%;float:left;text-align:center;">
                <FORM>
                    <INPUT type="button" value="Abrir" onClick="javascript:window.open('<%=fo&"\"&x.name%>','mywindow','width=800,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes')">
                
                    <%Response.Write("<a href='"&fo&"\"&x.Name&"' target='_ipageview'>Abrir</a>")%>
            
                </FORM>
            </td>
            <%
            
            if xx=0 then
                xx=1
                cor="#faebd7"
            else
                cor="#e1d3c1"
                xx=0
            end if
            
            Response.Write("<td style='width:79%;float:left;border:1px solid black;background-color:"&cor&";'>"&x.Name&"</td><td style='text-align:right;width:15%;float:left;border:1px solid black;background-color:"&cor&";'>"&x.DateLastModified&"</td></tr>")
              
            'endereco="<a href='"&fo&"\"&x.Name&"'>"&x.Name&"</a>"
                
            next
            x=""
            set fo=nothing
            set fs=nothing
            %>
            </table>
        </aside>

    </div>

</div>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá razs

 

Troque isso:

set fo=fs.GetFolder(Server.MapPath("/ficheiros/"))

Por isso:

set fo=fs.GetFolder(Server.MapPath("ficheiros/"))

E veja se corrige seu erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da algum erro?

 

Porque eu testei aqui, e ele lista os arquivos dentro da pasta Ficheiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude o content-type. coloque

 

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

 

para abrir o arquivo para visualização.

 

Mas verifique também se o path esta correto e as extensões. E dá uma olhada no fórum que postei alguns exemplos de explorer

Compartilhar este post


Link para o post
Compartilhar em outros sites

reparei que ele lista os ficheiros mas quando clico ele retira as \ do endereço.

 

Em relação a iframe ele tambem faça o mesmo.

 

 

O Response.ContentType = "application/vnd.ms-excel" seria se ele abri-se o ficheiro excell noutra pagina mas nao é o caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim o content-type é para abrir ele. É que no 1º post vc colocou que não estava conseguindo abrir, por isso mencionei.

 

 

 

Boas estou a fazer um pequeno file manager nada de mais mas nao estou a conseguir abrir os ficheiros xlsx.

 

 

 

tente armazenar o path em uma variável antes de setá-la no FSO. E dá uma olhada no fórum existem alguns exemplos que postei de explorer pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz como disseste mas ele guarda o endereço certo mas ao abrir abre isto

 

c:UsersRSRic%08abywebsslFicheiros%0Cicheiros

 

em vez de: C:\Users\RS\Ric\babywebssl\Ficheiros\ficheiros\Certif.pdf e isto é o que aparece quando faco response.write da var com o caminho e nome do ficheiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como vc salvou o caminho ????

use esta função para pegar o caminho

<SCRIPT Language=VBScript RUNAT=SERVER>
Function getFilePath()
Dim lsPath, arPath

'Obter o caminho do arquivo virtual. O SCRIPT_NAME
'Item na coleção ServerVariables em
'Objeto de solicitação tem o caminho completo do arquivo virtual
lsPath = Request.ServerVariables("SCRIPT_NAME")

'Dividir o caminho . / Isso cria uma matriz unidimensional
arPath = Split(lsPath, "/")
'Definir o último item na matriz de cadeia em branco
'(O último item é realmente o nome do arquivo)
arPath(UBound(arPath,1)) = ""

' Join the items in the array. This will
' give you the virtual path of the file
GetFilePath = Join(arPath, "/")
End Function
</SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava aqui a fazer asneira :s mas agora pus assim "fo&"/"&x.name" sendo que fo é o servermappath e x.name o nome do ficheiro, ele agora devolve o endereço completo mas quando mando abrir tira as \ do fo ou seja tenta abrir com o endereço "c:UsersRSRic%08abywebsslFicheiros%0Cicheiros/aaaaaaaa4.xlsx"

 

 

Desculpa xan mas nao estou a perceber o teu script :s


Talvez seja melhor assim, este é o codigo que lista os ficheiros e os disponibiliza numa tabela para o utilizador poder abrir:


<%
dim fs,fo,x,xx,cor
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder(Server.MapPath("ficheiros"))
%>


<table style="width:100%;float:left;border:1px solid black;">
<tr>
<td style="width:75px;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Nova Janela</b></td>
<td style="width:90px;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Abrir a direita</b></td>
<td style="width:450px;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Ficheiro</b></td>
<td style="width:150px;float:left;border:1px solid black;text-align:center;background-color:lightblue;"><b>Data</b></td>

</tr>
<%
xx=0
for each x in fo.files
%>
<tr>


<td style="width:75px;float:left;text-align:center;">
<FORM>
<INPUT type="button" value="Abrir" onClick="javascript:window.open('<%=fo&"/"&x.name%>','mywindow','width=800,height=600,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes')">
</FORM>
</td>
<td style="width:90px;float:left;text-align:center;">
<a href="<%=fo&"\"&x.name%>" target="_ipageview">Abrir</a>
</td>


<%

if xx=0 then
xx=1
cor="#faebd7"
else
cor="#e1d3c1"
xx=0
end if

Response.Write("<td style='width:450px;float:left;background-color:"&cor&";'>"&x.Name&"</td><td style='text-align:right;width:150px;float:left;background-color:"&cor&";'>"&x.DateLastModified&"</td></tr>")

next
xx=""

set fo=nothing
set fs=nothing
%>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pegue o caminho com a função que coloquei para pegar o caminho

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentei e da erro

			
		
<%		
		<SCRIPT Language="VBScript" RUNAT="SERVER">
		
			  Function getFilePath()
			  Dim lsPath, arPath

			'Obter o caminho do arquivo virtual. O SCRIPT_NAME
			'Item na coleção ServerVariables em
			'Objeto de solicitação tem o caminho completo do arquivo virtual
			  lsPath = Request.ServerVariables("SCRIPT_NAME")
			   
			'Dividir o caminho . / Isso cria uma matriz unidimensional
			  arPath = Split(lsPath, "/")
			'Definir o último item na matriz de cadeia em branco
			'(O último item é realmente o nome do arquivo)
			  arPath(UBound(arPath,1)) = ""

			' Join the items in the array. This will
			' give you the virtual path of the file
			  GetFilePath = Join(arPath, "/")
			End Function 
				
		</SCRIPT>

		varfich= getFilePath(fo&"/"&x.name)
		
%>	
	
			
			

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro gerado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

da isto:

 

 

Source line: varfich = getFilePath(fo&"/"&x.name)

Description: Número errado de argumentos ou atribuição inválida de propriedade: 'getFilePath'

 

 

ele ja devolve o endereço correcto com as barras todas mas continua a dizer "The address wasn't understood" isto acontece que o endereço comeca em c: se eu fizer f5 ele pergunta se quero guardar ou abrir com um programa.

 

Como faço para ele abrir com o programa predefenido?

 

 

isto é incrivel se ponho:

 

<a href='file:///"&objFile.path&"' target='_blank'>aaaaaaaaaaa</a>

 

abre a janela de pop up e da erro de pagina, no url da mesma tiro o file:/// e abre o ficheiro normalmente, mas se altero o codigo para

 

<a href='"&objFile.path&"' target='_blank'>

 

nem sequer abre o pop up.

 

 

Alguma ideia porque isto acontece com o pdf???

Compartilhar este post


Link para o post
Compartilhar em outros sites

dê um response.write em objFile.path

para vermos o conteúdo

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.