我已经编写了将数据导出到xlsx文件的代码。但我不明白如何显示窗口提示下载该客户端的xlsx文件。 这里是我的代码:如何显示窗口提示下载excel文件?
Private Sub DataTableToExcel(ByVal tbl As DataTable)
Dim Excel As Object = CreateObject("Excel.Application")
Dim strFilename As String
Dim intCol, intRow As Integer
Dim strPath As String = "C:\"
If Excel Is Nothing Then
MsgBox("It appears that Excel is not installed on this machine. This operation requires MS Excel to be installed on this machine.", MsgBoxStyle.Critical)
Return
End If
Try
With Excel
.SheetsInNewWorkbook = 1
.Workbooks.Add()
.Worksheets(1).Select()
.cells(1, 1).value = "Complaint Detail Report" 'Heading of the excel file
.cells(1, 1).EntireRow.Font.Bold = True
Dim intI As Integer = 1
For intCol = 0 To tbl.Columns.Count - 1
.cells(2, intI).value = tbl.Columns(intCol).ColumnName
.cells(2, intI).EntireRow.Font.Bold = True
intI += 1
Next
intI = 3
Dim intK As Integer = 1
For intCol = 0 To tbl.Columns.Count - 1
intI = 3
For intRow = 0 To tbl.Rows.Count - 1
.Cells(intI, intK).Value = tbl.Rows(intRow).ItemArray(intCol)
intI += 1
Next
intK += 1
Next
If Mid$(strPath, strPath.Length, 1) <> "\" Then
strPath = strPath & "\"
End If
strFilename = strPath & "ComplaintDetail.xlsx"
.ActiveCell.Worksheet.SaveAs(strFilename)
End With
System.Runtime.InteropServices.Marshal.ReleaseComObject(Excel)
Excel = Nothing
MsgBox("Data's are exported to Excel Succesfully: Location: '" & strFilename & "'", MsgBoxStyle.Information)
' Response.AddHeader("content-disposition", "attachment;filename=ComplaintDetail.xlsx")
'Response.ContentType = "application/vnd.excel"
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim pro() As Process = System.Diagnostics.Process.GetProcessesByName("EXCEL")
For Each i As Process In pro
i.Kill()
Next
End Sub
在这里,我保存.xlsx文件,直接到“C驱动器”。 为什么我选择C Drive? :因为99%的人有C:在那儿有电脑。 但我得到了一些情况,用户不允许访问他们的C驱动器,或者他们不允许在C驱动器内写入任何内容。 这就是为什么我试图添加此窗口提示,其中用户将决定在哪里保存该文件。但是我在上面的代码中遇到了一些问题。 你能帮我在上面的代码中添加窗口提示吗?
你为什么要放一个C#标签? – Gab 2014-09-04 05:59:04
使用临时文件%tmp% – 2014-09-04 06:01:13
它是一个Windows应用程序吗?如果是,那么你不应该用asp.net标记它。 – Priyank 2014-09-04 06:04:43