Buenas tardes. Tengo el siguietne problema. Una aplicacion web que estoy desarrollando, ha de generar un ficheor excel.
El codigo es el siguiente:
Dim f As New Functions
Dim ds As DataSet = f.EmpleadosEnActivo
Dim dt As DataTable = ds.Tables(0)
Dim oExcel As New Excel.Application
Dim oBooks As Excel.Workbooks, oBook As Excel.Workbook
Dim oSheets As Excel.Sheets, oSheet As Excel.Worksheet
Dim oCells As Excel.Range
Dim sFile As String, sTemplate As String
sFile = Server.MapPath(Request.ApplicationPath) & "\Excels\MyTemplate.xlsx"
sTemplate = Server.MapPath(Request.ApplicationPath) & "\Excels\MyTemplate1.xltx"
oExcel.Visible = False
oExcel.DisplayAlerts = False
oBooks = oExcel.Workbooks
oBooks.Open(Server.MapPath(Request.ApplicationPath) & "\Excels\MyTemplate1.xltx")
oBook = oBooks.Item(1)
oSheets = oBook.Worksheets
oSheet = CType(oSheets.Item(1), Excel.Worksheet)
oSheet.Name = "CALCULO EMPLEADOS"
oCells = oSheet.Cells
f.DumpData(dt, oCells)
oSheet.Columns.AutoFit()
oSheet.SaveAs(sFile)
oExcel.Quit()
ReleaseComObject(oCells)
ReleaseComObject(oSheet)
ReleaseComObject(oSheets)
ReleaseComObject(oBook)
ReleaseComObject(oBooks)
ReleaseComObject(oExcel)
oExcel = Nothing
oBooks = Nothing
oBook = Nothing
oSheets = Nothing
oSheet = Nothing
oCells = Nothing
System.GC.Collect()
Response.Clear()
Response.ContentType = "application/ms-excel"
Response.AddHeader("Content-disposition", "attachment; filename=" & "RRHH.xlsx")
Response.WriteFile(".\Excels\MyTemplate.xlsx")
Response.Flush()
Response.Close()
Basicamente lo que hace es coger los datos que necesita, abre una plantilla de excel que ya tengo, calcula una cosas y guarda el archivo. Despues lo que hago es que al cliente le salga la descarga del fichero.
Pues bien, esto en asp 2.0 y con XP rula fenomenal. Hace un par de dias migre un equipo a vista ultimate (que vaya tela con el sql y lo demas, porque tenia un home y no se podia, pero bueno) y la aplicacion va muy bien, pero el excel no funciona..... a medias. Desde el vista, si ejecuto desde el IDE de Visual Studio el fichero lo genera sin problemas, pero si uso una url para hacer prueba desde casa, o simplemente le pongo la url
http://127.0.0.1, me da el siguiente error:
No se puede obtener acceso al archivo 'C:\inetpub\wwwroot\HADES\Excels\MyTemplate1.xltx'. Puede haber varios motivos: • El nombre del archivo o la ruta no existen. • Otro programa está usando el archivo. • El libro que está intentando guardar tiene el mismo nombre que otro libro que está abierto en estos momentos.
Yo creo que va a ser por algo del information server 7.0. La verdad es que no lo controlo casi nada, he leido un poco, le he puesto la configuracion classic.net para poder seguir de momento, y el resto de la aplicacion va de #### madre, pero lo del excel en cliente no rula.
Alguna idea???
Muchas gracias de antemano