0

エクスポートされたファイルを自分の PC/宛先に保存するためのコードがありますが、ASP.NET (4.0) はサービス アカウントを実行しているサーバーに表示されるため、ユーザーが button1 をクリックしてプロンプトを表示できるようにしたいと考えています。 [名前を付けて保存] ダイアログを開き、それぞれのフォルダー (サーバーではなくユーザーの PC内) に保存できるようにします。(これはサーバーにあるため、サービスアカウントアドレスを取得するため、環境を使用できません。)

注:request.servervariables( "Logon_User")を使用しているユーザー名を取得するために、ここでいくつかの投稿を探しました。-保存ダイアログを使用してデータテーブルを Excel ファイルにエクスポートする -保存ダイアログを使用して DataGridView を Excel にエクスポートしますか? - VBA マクロの名前を付けて保存場所のダイアログ ボックス

Dim cnn As SqlConnection
    Dim connectionString As String
    Dim sql As String
    Dim i, j As Integer

    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value

    xlApp = New Excel.Application
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    xlWorkSheet = xlWorkBook.Sheets("sheet1")

    connectionString = "Data Source=xxxx"
    cnn = New SqlConnection(connectionString)
    cnn.Open()
    sql = "SELECT * FROM ControlCharts"
    Dim dscmd As New SqlDataAdapter(sql, cnn)
    Dim ds As New DataSet
    dscmd.Fill(ds)

    For i = 0 To ds.Tables(0).Rows.Count - 1
        For j = 0 To ds.Tables(0).Columns.Count - 1
            xlWorkSheet.Cells(i + 1, j + 1) = _
            ds.Tables(0).Rows(i).Item(j)
        Next
    Next

    'here instead of saving it to the C drive, let the user choose.
    xlWorkSheet.SaveAs("C:\\ControlCharts.xlsx")
    xlWorkBook.Close()
    xlApp.Quit()
    releaseObject(xlApp)
    releaseObject(xlWorkBook)
    releaseObject(xlWorkSheet)
    cnn.Close()
    CheckBox1.Checked = False
4

1 に答える 1

1

ユーザーがサーバー上の UI とファイルシステムを操作することはできません。

代わりに、ファイルをサーバー上の一時パスに保存してから、HTTP 経由でファイル ダウンロードとして提供できます。

于 2013-03-11T14:37:25.200 に答える