「WebでExcelを編集したい」技術系掲示板でよく見かける質問をSPREAD for ASP.NET 5.0Jで解決する
ダウンロード サンプルソース (68.9 KB)
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フォームに貼りつけただけで利用できます。
この記事は参考になりましたか?
- 現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)連載記事一覧
- この記事の著者
-
初音玲(ハツネアキラ)
国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

