如何显示下载excel文件的窗口提示?

时间:2014-09-04 05:56:31

标签: asp.net vb.net excel

我编写了将数据导出到xlsx文件的代码。但我不明白如何在客户端显示窗口提示下载该xlsx文件。 这是我的代码:

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盘? :因为99%的人都有C:在那里。 但我得到了一些用户不允许访问其C盘或他们不允许在c盘内写入任何内容的情况。 这就是我尝试添加此窗口提示的原因,用户将决定在何处保存该文件。但我在上面的代码中遇到了一些问题。 你能帮我在上面的代码中添加窗口提示吗?

2 个答案:

答案 0 :(得分:0)

  1. 保存在App_Data目录中。您可以找到Server.MapPath("~/App_Data")的绝对路径。此路径可由应用程序
  2. 编写
  3. 使用Response.TransmitFile制作要下载的文件。

答案 1 :(得分:-1)

尝试使用类似保存文件对话框(可以通过ui设计器添加)。 然后使用:

If dialog.Show() = Windows.Forms.DialogResult.OK Then
     strPath = dialog.FileName
End If