[英]VB.NET Gembox - Switch Active Spreadsheet
我到處都在尋找,並認為我只是為了一些簡單的事情而碰上了精神障礙。 但是還是。 我正在編寫一個快速程序,以幫助我處理一些針對不同車輛的里程電子表格。 電子表格中的每輛車都有其工作表,我正在VB.net中使用GemBox。
基本上,在按下哪個按鈕時,它會為相應的車輛選擇正確的紙張。 我什么都找不到,告訴我如何選擇其他現有工作表作為活動工作表。
這是我的測試代碼atm。
Public Sub SetMiles(vehicle As String)
Dim wb = ExcelFile.Load(file)
Dim ws = wb.Worksheets.ActiveWorksheet(vehicle)
loc = "F12"
ws.Cells(loc).Value = "800"
End Sub
在GemBox.Spreadsheet中,您無需將工作表設置為活動狀態即可使用它。
換句話說,假設您有一個包含"Sheet1"
和"Sheet2"
的Excel文件。 要寫到這些表中,可以使用以下命令:
Dim wb = ExcelFile.Load(File)
Dim ws = wb.Worksheets("Sheet1")
ws.Cells("A1").Value = "Foo"
ws = wb.Worksheets("Sheet2")
ws.Cells("A1").Value = "Bar"
您還可以使用以下內容:
Dim wb = ExcelFile.Load(File)
Dim ws = wb.Worksheets(0)
ws.Cells("A1").Value = "Foo"
ws = wb.Worksheets(1)
ws.Cells("A1").Value = "Bar"
因此,我相信您所需要的是以下內容:
Public Sub SetMiles(vehicle As String)
Dim wb = ExcelFile.Load(File)
Dim ws = wb.Worksheets(vehicle)
Loc = "F12"
ws.Cells(Loc).Value = "800"
End Sub
最后,如果確實需要將某些工作表設置為活動表,則可以使用GemBox.Spreadsheet進行以下操作:
wb.Worksheets.ActiveWorksheet = wb.Worksheets(vehicle)
但是,同樣,GemBox.Spreadsheet不在乎工作表是否處於活動狀態,無論如何都可以對其進行訪問和修改。 通過將工作表設置為活動狀態,該工作表將成為在Excel應用程序中打開該文件時看到的第一個可見工作表。
wb.Sheets(vehicle).Activate
是最簡單的方法。
盡管我建議您也驗證vehicle
字符串,以確保Sheet
確實存在。 然后,您可以忽略,顯示消息或創建新工作表。
我假設您想激活工作表,以便用戶可以進行手動輸入。 如果您正在執行自動輸入(無用戶交互),那么最好不要激活工作表。 類似於以下內容:
Public Sub SetMiles(vehicle As String, wb as Workbook, loc as string, Mileage as string)
' passing the values is better encapsulation for OOP purposes
' in your example above, loc="F12", Mileage = "800"
' You have passed the Mileage as a string - but you could also use a numeric value.
' Validate sheet name here if important.
' Validate range name here if important.
wb.Sheets(vehicle).Range(loc).Value = Mileage
End Sub
編輯:出現GemBox使用Worksheets
而不是工作Sheets
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.