Insertar Archivos
Hola!, haber si alguien me puede ayudar..
Necesito que en mi pagina se baje un archivo xls, pero quiero que en vez de que lo abra en una pagina html, pregunte al usuario si quiere guardar el archivo o abrirlo, asi como lo hace con los archivos zip o exe.
Gracias!
Necesito que en mi pagina se baje un archivo xls, pero quiero que en vez de que lo abra en una pagina html, pregunte al usuario si quiere guardar el archivo o abrirlo, asi como lo hace con los archivos zip o exe.
Gracias!
No se si es lo que buscas pero te paso el siguiente codigo que lo que hace es lo siguiente:
Abre una Pagina htm y ejecuta un VbScript cuando arranca en este scrip abre el excel en forma minimizada en el cliente y lo carga, al finalizar maximiza el excel para que el usuario lo vea. En este punto el usuario puede resolver que hacer si salvarlo, imprimirlo, ....
Bueno te paso el codigo.
AAaaaa una cosa mas seguramente te va a pedir autorizacion ya que intenta abrir el excel en el cliente y grabar cosas, solo por un tema de seguridad. Siempre debes tener cuidado con este tipo de cosas ya que pueden contener codigo malicioso tipo virus.
El siguiente codigo esta libre de virus y debes salvarlo como *.htm ej ExportaMsExcel.htm
Cualquier duda a las ordenes. No me busques la semana que viene me voy de licencia.
SUERTE.
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</head>
<body>
<BR>
EXPORTANDO INFORMACION HACIA MICROSOFT EXCEL
<BR>
</body>
</html>
<script LANGUAGE="VBScript">
Sub window_onload
document.title="Exportacion a MsExcel"
'--------------------------
'EXPORTACION HACIA MS.EXCEL
'--------------------------
on error resume next
Dim MiExcel
Set MiExcel = CreateObject("Excel.Application")
MiExcel.Application.WindowState = xlMinimized
MiExcel.Application.Visible = FALSE
MiExcel.Application.Workbooks.Add
'------------------------
'TITILOS DE LOS REGISTROS
'------------------------
MisTitulos = "Titulo1,Titulo2,Titulo3,Titulo4,Titulo5,Titulo6,Titulo7,Titulo8,Titulo9"
MiExcelCol = "A"
MiExcelRow = 4
ind = 1
For x = 1 To 40
MiExcel.Range(MiExcelCol & MiExcelRow).Select
MiExcel.Selection.NumberFormat = "@"
if InStr(ind, MisTitulos, ",") = 0 then
Exit For
end if
MiExcel.ActiveCell.FormulaR1C1 = Mid(MisTitulos, ind, InStr(ind, MisTitulos, ",") - ind)
NuevaColumna MiExcelCol
DoEvents
ind = InStr(ind, MisTitulos, ",") + 1
Next
'-----------------
'TITILOS GENERALES
'-----------------
MiExcel.Cells.Select
MiExcel.Cells.EntireColumn.AutoFit
MiExcel.Range("A1").Select
MiExcel.Range("H1").Select
MiExcel.ActiveCell.FormulaR1C1 = Day(now()) & "/" & month(now()) & "/" & year(now())
MiExcel.Selection.NumberFormat = "mmmm d, yyyy"
MiExcel.Selection.Font.Italic = True
MiExcel.Selection.Font.ColorIndex = 10
MiExcel.Range("A2").Select
MiExcel.ActiveCell.FormulaR1C1 = "Exportación hacia MsExcel"
MiExcel.Range("A2").Select
MiExcel.Selection.Font.Name = "Times New Roman"
MiExcel.Selection.Font.Size = 10
MiExcel.Selection.Font.Strikethrough = False
MiExcel.Selection.Font.Superscript = False
MiExcel.Selection.Font.Subscript = False
MiExcel.Selection.Font.OutlineFont = False
MiExcel.Selection.Font.Shadow = False
MiExcel.Selection.Font.Underline = xlUnderlineStyleNone
MiExcel.Selection.Font.ColorIndex = xlAutomatic
MiExcel.Selection.Font.Name = "Times New Roman"
MiExcel.Selection.Font.Size = 18
MiExcel.Selection.Font.Strikethrough = False
MiExcel.Selection.Font.Superscript = False
MiExcel.Selection.Font.Subscript = False
MiExcel.Selection.Font.OutlineFont = False
MiExcel.Selection.Font.Shadow = False
MiExcel.Selection.Font.Underline = xlUnderlineStyleNone
MiExcel.Selection.Font.ColorIndex = xlAutomatic
MiExcel.Selection.Font.ColorIndex = 5
MiExcel.Selection.Font.Underline = xlUnderlineStyleSingle
MiExcel.Rows("4:4").Select
MiExcel.Selection.HorizontalAlignment = xlCenter
MiExcel.Selection.VerticalAlignment = xlBottom
MiExcel.Selection.WrapText = False
MiExcel.Selection.Orientation = 0
MiExcel.Selection.ShrinkToFit = False
MiExcel.Selection.MergeCells = False
MiExcel.Selection.Font.ColorIndex = 5
MiExcel.Selection.Font.Bold = True
MiExcel.Range("A5").Select
MiExcel.ActiveWindow.FreezePanes = True
MiExcel.Application.Visible = true
MiExcel.Application.WindowState = xlMaximized
Set MiExcel = Nothing
End Sub
Sub NuevaColumna (MiExcelCol)
If Len(MiExcelCol) = 1 Then
If MiExcelCol = "Z" Then
MiExcelCol = "AA"
Else
MiExcelCol = Chr(Asc(MiExcelCol) + 1)
End If
Else
If Len(MiExcelCol) = 2 Then
If Right(MiExcelCol, 1) = "Z" Then
MiExcelCol = Chr(Asc(Mid(MiExcelCol, 1, 1)) + 1) & "A"
Else
MiExcelCol = Chr(Asc(Mid(MiExcelCol, 1, 1))) & Chr(Asc(Mid(MiExcelCol, 2, 1)) + 1)
End If
End If
End If
DoEvents
End Sub
</script>
Abre una Pagina htm y ejecuta un VbScript cuando arranca en este scrip abre el excel en forma minimizada en el cliente y lo carga, al finalizar maximiza el excel para que el usuario lo vea. En este punto el usuario puede resolver que hacer si salvarlo, imprimirlo, ....
Bueno te paso el codigo.
AAaaaa una cosa mas seguramente te va a pedir autorizacion ya que intenta abrir el excel en el cliente y grabar cosas, solo por un tema de seguridad. Siempre debes tener cuidado con este tipo de cosas ya que pueden contener codigo malicioso tipo virus.
El siguiente codigo esta libre de virus y debes salvarlo como *.htm ej ExportaMsExcel.htm
Cualquier duda a las ordenes. No me busques la semana que viene me voy de licencia.
SUERTE.
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</head>
<body>
<BR>
EXPORTANDO INFORMACION HACIA MICROSOFT EXCEL
<BR>
</body>
</html>
<script LANGUAGE="VBScript">
Sub window_onload
document.title="Exportacion a MsExcel"
'--------------------------
'EXPORTACION HACIA MS.EXCEL
'--------------------------
on error resume next
Dim MiExcel
Set MiExcel = CreateObject("Excel.Application")
MiExcel.Application.WindowState = xlMinimized
MiExcel.Application.Visible = FALSE
MiExcel.Application.Workbooks.Add
'------------------------
'TITILOS DE LOS REGISTROS
'------------------------
MisTitulos = "Titulo1,Titulo2,Titulo3,Titulo4,Titulo5,Titulo6,Titulo7,Titulo8,Titulo9"
MiExcelCol = "A"
MiExcelRow = 4
ind = 1
For x = 1 To 40
MiExcel.Range(MiExcelCol & MiExcelRow).Select
MiExcel.Selection.NumberFormat = "@"
if InStr(ind, MisTitulos, ",") = 0 then
Exit For
end if
MiExcel.ActiveCell.FormulaR1C1 = Mid(MisTitulos, ind, InStr(ind, MisTitulos, ",") - ind)
NuevaColumna MiExcelCol
DoEvents
ind = InStr(ind, MisTitulos, ",") + 1
Next
'-----------------
'TITILOS GENERALES
'-----------------
MiExcel.Cells.Select
MiExcel.Cells.EntireColumn.AutoFit
MiExcel.Range("A1").Select
MiExcel.Range("H1").Select
MiExcel.ActiveCell.FormulaR1C1 = Day(now()) & "/" & month(now()) & "/" & year(now())
MiExcel.Selection.NumberFormat = "mmmm d, yyyy"
MiExcel.Selection.Font.Italic = True
MiExcel.Selection.Font.ColorIndex = 10
MiExcel.Range("A2").Select
MiExcel.ActiveCell.FormulaR1C1 = "Exportación hacia MsExcel"
MiExcel.Range("A2").Select
MiExcel.Selection.Font.Name = "Times New Roman"
MiExcel.Selection.Font.Size = 10
MiExcel.Selection.Font.Strikethrough = False
MiExcel.Selection.Font.Superscript = False
MiExcel.Selection.Font.Subscript = False
MiExcel.Selection.Font.OutlineFont = False
MiExcel.Selection.Font.Shadow = False
MiExcel.Selection.Font.Underline = xlUnderlineStyleNone
MiExcel.Selection.Font.ColorIndex = xlAutomatic
MiExcel.Selection.Font.Name = "Times New Roman"
MiExcel.Selection.Font.Size = 18
MiExcel.Selection.Font.Strikethrough = False
MiExcel.Selection.Font.Superscript = False
MiExcel.Selection.Font.Subscript = False
MiExcel.Selection.Font.OutlineFont = False
MiExcel.Selection.Font.Shadow = False
MiExcel.Selection.Font.Underline = xlUnderlineStyleNone
MiExcel.Selection.Font.ColorIndex = xlAutomatic
MiExcel.Selection.Font.ColorIndex = 5
MiExcel.Selection.Font.Underline = xlUnderlineStyleSingle
MiExcel.Rows("4:4").Select
MiExcel.Selection.HorizontalAlignment = xlCenter
MiExcel.Selection.VerticalAlignment = xlBottom
MiExcel.Selection.WrapText = False
MiExcel.Selection.Orientation = 0
MiExcel.Selection.ShrinkToFit = False
MiExcel.Selection.MergeCells = False
MiExcel.Selection.Font.ColorIndex = 5
MiExcel.Selection.Font.Bold = True
MiExcel.Range("A5").Select
MiExcel.ActiveWindow.FreezePanes = True
MiExcel.Application.Visible = true
MiExcel.Application.WindowState = xlMaximized
Set MiExcel = Nothing
End Sub
Sub NuevaColumna (MiExcelCol)
If Len(MiExcelCol) = 1 Then
If MiExcelCol = "Z" Then
MiExcelCol = "AA"
Else
MiExcelCol = Chr(Asc(MiExcelCol) + 1)
End If
Else
If Len(MiExcelCol) = 2 Then
If Right(MiExcelCol, 1) = "Z" Then
MiExcelCol = Chr(Asc(Mid(MiExcelCol, 1, 1)) + 1) & "A"
Else
MiExcelCol = Chr(Asc(Mid(MiExcelCol, 1, 1))) & Chr(Asc(Mid(MiExcelCol, 2, 1)) + 1)
End If
End If
End If
DoEvents
End Sub
</script>