エクスポートされたファイルを自分の 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