Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Crear fichero excel con ASP
 Foro Bloqueado  Tema Bloqueado


Autor Temas
jalbalat
Starting Member


19 Posts
Mensajes - 17 Dec 2003 :  17:58:35  Ver Perfil  Enviar Email
Hola,
Tengo una función que me crea un fichero excel que se guarda en una carpeta del servidor.

El problema viene al hacer el SaveAs, ya que, me lo guarda con un nombre aleatorio que el quiere en lugar del fichero que le paso como parámetro.

He leigo que tiene que estar instalado únicamente Microsoft Excel y MSOWC.MSI del CD de microsoft office.

El servidor es windows 2000 y el office también.

¿Se ha de tener instalado algo más para que funcione? En algún momento me dejo de funcionar y en un servidor local del trabajo me funciona y teoricamente tengo instalado lo mismo o eso creo.

Se os ocurre algo?

El codigo es el siguiente:

sub llegir_document_excel(byref capcalera, byref dades, byval subcarpeta, byval document)
'Passos per llegir una fulla d'excel
'1 - Obtenir adreça física del fitxer obtenim primer l'adreça física del lloc,
'2 - Establir una conexió entre el servidor asp i una base de dades
'3 - Obrir l'objecte amb el driver específic per Microsoft Excel
'4 - Crear un objete de tipus recordset per retornar la consulta sql
'5 - Obrir el recordset, senyalant com a taula el rang de cel·les Excel nomenat resultats.
path = obtenir_path
path = path & "Web Teide\Resultados\" & subcarpeta & "\"
path= path & document

Set ConexionBD = Server.CreateObject("ADODB.Connection")
ConexionBD.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Path
Set rsVac = Server.CreateObject("ADODB.Recordset")
rsVac.Open "Select * From resultats", ConexionBD

'Llegir capçalera i files de les dades de la plana excel
dades=rsVac.GetRows

tamany= ubound(dades,1)
redim capcalera(tamany)
i=0
rsVac.MoveFirst
for each fld in rsVac.Fields
capcalera(i)= fld.name
i=i+1
next

'Es tanca i destrueix l'objecte recordset
rsVac.Close
set rsVac = Nothing
'Es tanca i destrueix l'objecte connection
ConexionBD.close
set ConexionBD=nothing

'do while not rsVac.EOF
' Response.Write "<tr>" & vbCRLf
' for each fld in rsVac.Fields
' Response.Write "<td>" & fld.value & "</td>"
' next
' Response.Write "</tr>" & vbCrLf
' rsVac.MoveNext
'loop
end sub

sub crear_document_excel(byval capcalera, byval dades, byval subcarpeta, byval document, byref missatge)
On Error resume next
missatge=""
Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Application.Visible = True
Set ExcelBook = ExcelApp.Workbooks.Add


'Fulla excel amb la taula de resultats
x=1
y=1
if isarray(capcalera) then
for i=0 to ubound(capcalera)
ExcelBook.Worksheets(1).Cells(x, y).Font.Bold = true
ExcelBook.Worksheets(1).Cells(x, y).Value = capcalera(i)
y= y+1
next
else
missatge=Err.Description
end if
fila=1

if isarray(dades) then
for i=0 to ubound(dades,2)
if dades(0,i)<>"" then
fila = fila + 1
for j=0 to ubound(dades,1)
if dades(j,i)<>"" then
ExcelBook.Worksheets(1).Cells(i+2,j+1).Value=dades(j,i)
end if
next
end if
next

ExcelBook.Worksheets(1).name="Resultats"

'Calcul limit inferior de la fulla excel

col = ubound(dades,1) + 1
resto = col mod len(baseColumna)
entero = (col - resto)/len(baseColumna)
limitInferior = ""
if entero > 0 then
limitInferior=mid(baseColumna,entero,1)
end if
if resto > 0 then
limitInferior = limitInferior & mid(baseColumna,resto,1)
end if
limitInferior = limitInferior & cstr(fila)


'Fulla excel amb el gràfic
ExcelBook.Charts.Add
ExcelBook.ActiveChart.ChartType=xlBarClustered
ExcelBook.ActiveChart.SetSourceData ExcelBook.Worksheets(1).Range("B2:" & limitInferior),xlColumns

'Eliminar les series que hi ha per defecte fins a deixar només 1
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete
ExcelBook.ActiveChart.SeriesCollection(2).Delete

'Insertar titol al gràfic
ExcelBook.ActiveChart.HasTitle=true
ExcelBook.ActiveChart.SeriesCollection(1).Name="Gràfic"
'Eliminar legenda
ExcelBook.ActiveChart.HasLegend=False

'Insertar titol als eixos
ExcelBook.ActiveChart.Axes(xlCategory, xlPrimary).HasTitle = True
ExcelBook.ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Alumnes"
ExcelBook.ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ExcelBook.ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Resultats"
else
missatge=Err.Description
end if

if Err=0 then
path = obtenir_path
path = path & "Web Resultados\" & subcarpeta & "\"
path= path & "Res" & document
ExcelBook.SaveAs path

else
missatge=Err.Description
end if

ExcelApp.Application.Quit
Set ExcelBook = Nothing
Set ExcelApp = Nothing

end sub

Gracias por adelantado por vuestra ayuda.

Jose


   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar