Excel編集画面を作成する
一覧画面でボタンクリックイベントを検出する
ファイル一覧画面では行ごとにボタンを設置しています。このようなデザインの場合、ボタンをクリックするとどのようなイベントが起きるのでしょうか。答えはButtonCommandイベントです。
SPREADのButtonCommandイベントの特徴は、SPREADに配置したボタンをクリックすれば一律でButtonCommandイベントが発生するという事です。ボタンがクリックされた行については、イベントプロシージャの引数「e
」から「e.CommandArgument.X」プロパティを参照して行を取得できます。
各ボタンの識別はe.CommandName
にクリックしたボタンのコマンド名が設定されます。例えば[編集ボタン]には「Edit_Button」というコマンド名を設定しています。
Private Sub List_FpSpread_ButtonCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) _ Handles List_FpSpread.ButtonCommand Dim filePath As String = System.IO.Path.Combine(My.Request.PhysicalApplicationPath, "App_Data") Dim fileName As String = Me.List_FpSpread.Sheets(0).GetText(e.CommandArgument.X, 0) Select Case e.CommandName Case "Edit_Button" Call GetExcel(filePath, fileName) Me.FileName_Label.Text = fileName Case "Get_Button" Call DownloadExcelFile(filePath, fileName) End Select End Sub
ExcelファイルをSPREADに表示する
Private Function GetExcel(ByVal filePath As String, ByVal fileName As String) As Boolean Dim isOK As Boolean = False Try Me.Excel_FpSpread.OpenExcel(System.IO.Path.Combine(filePath, fileName)) Me.Excel_FpSpread.ActiveSheetView.PageSize = Me.Excel_FpSpread.Rows.Count Catch ex As Exception Me.Message_Label.Text = ex.Message End Try isOK = True Return isOK End Function
SPREADにExcelファイルの内容を表示するのに必要なのはリスト4のように、OpenExcelメソッドの実行とActiveSheetView.PageSize
にRows.Count
を入れて、Excelシートの内容がすべて表示できるようにPageSizeを調整するコードです。なお、Excelシートを表示するExcel_FpSpreadは、Webフォームに貼りつけただけで利用できます。