簡體   English   中英

VB.NET Gembox-切換活動電子表格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM