G
George Homorozeanu
We create an excel object with Excel/Office Interop Assembly and we want to
offer this excel object as download without creating physically the file.
The download window appears with "Save As.", "Open", etc
Problem:
The file we get as download is not the excel object we created. Instead of
the correct values/data we just get the namespace from the excel object in
the downloaded file.
Source code:
Private Sub SetExcel()
Dim ea As New Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook
Dim ws As Microsoft.Office.Interop.Excel.Worksheet
wb = ea.Workbooks.Add(1)
ws = wb.ActiveSheet
ws.Name = "Details"
ws.Cells(1, 1) = "test"
ws.Cells(4, 4) = "hallo"
ws.Cells(5, 6) = 4324
ws.Cells(3, 5) = "tja"
Call DownloadFromText(wb)
ea.Quit()
End Sub
Public Sub DownloadFromText( _
ByVal obj As Object)
Dim strHdr As String = ""
strHdr = "attachment;filename=ExcelFile.xls"
With HttpContext.Current.Response
.Clear()
.ContentType = "application/vnd.ms-excel"
.ContentEncoding = System.Text.Encoding.Default
.AppendHeader("Content-Disposition", strHdr)
.Write(obj)
.Flush()
.Clear()
.Close()
End With
End Sub
Output:
An excel file with one single line containing the text:
Microsoft.Office.Interop.Excel.WorkbookClass
We assume:
ContentType or ContentEncoding of HttpContext.Current.Response are not set
correctly
-OR-
The Write(obj) method is not the correct one to use in this case.
Everything works fine when writing first the excel object into a physical
file and offer the download with Response.TransmitFile. But creating the
file is not what we want.
Any suggestions could help us a lot.
Thanks.
offer this excel object as download without creating physically the file.
The download window appears with "Save As.", "Open", etc
Problem:
The file we get as download is not the excel object we created. Instead of
the correct values/data we just get the namespace from the excel object in
the downloaded file.
Source code:
Private Sub SetExcel()
Dim ea As New Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook
Dim ws As Microsoft.Office.Interop.Excel.Worksheet
wb = ea.Workbooks.Add(1)
ws = wb.ActiveSheet
ws.Name = "Details"
ws.Cells(1, 1) = "test"
ws.Cells(4, 4) = "hallo"
ws.Cells(5, 6) = 4324
ws.Cells(3, 5) = "tja"
Call DownloadFromText(wb)
ea.Quit()
End Sub
Public Sub DownloadFromText( _
ByVal obj As Object)
Dim strHdr As String = ""
strHdr = "attachment;filename=ExcelFile.xls"
With HttpContext.Current.Response
.Clear()
.ContentType = "application/vnd.ms-excel"
.ContentEncoding = System.Text.Encoding.Default
.AppendHeader("Content-Disposition", strHdr)
.Write(obj)
.Flush()
.Clear()
.Close()
End With
End Sub
Output:
An excel file with one single line containing the text:
Microsoft.Office.Interop.Excel.WorkbookClass
We assume:
ContentType or ContentEncoding of HttpContext.Current.Response are not set
correctly
-OR-
The Write(obj) method is not the correct one to use in this case.
Everything works fine when writing first the excel object into a physical
file and offer the download with Response.TransmitFile. But creating the
file is not what we want.
Any suggestions could help us a lot.
Thanks.