將資訊寫入至 Excel 工作表

我們現在已建立所有必要的參數值,以建構模型來計算零件號碼。我們要編寫的最後一個規則會將零件號碼以及其他與此檔案相關的參數值傳遞至 Excel 工作表中。這些零件號碼中的部分在 iPart 中,而此規則產生了螺釘零件號碼。

update_excel_spreadsheet_rule 利用了一組函數,這些函數可從「編輯規則」對話方塊的「片段」區域中的「Excel Data Links」品類取得。

  1. 新增名為 update_excel_spreadsheet_rule 的規則。

    根據模型的狀態,此規則會填寫必要的儲存格。在工作表中,資料要傳遞至的所有儲存格已進行命名,以對應寫入的資訊。

  2. 建立規則的第一部份,此部份會開啟工作表並寫入前三個儲存格值。

    複製程式碼塊

    GoExcel.CellValue("part_number.xls", "Sheet1", "Block_Type") = component_type
    GoExcel.CurrentCellValue("Block_Style") = block
    GoExcel.CurrentCellValue("Block_Part_Number") = iProperties.Value("manifold_block:1", "Project", "Part Number")

    在此部份中,我們參考 part_number.xls 工作表檔案 (包括在此自學課程專案中)。然後,我們設定 Block_TypeBlock_StyleBlock_Part_Number 儲存格的值。前兩個值會設定自組合參數,而最後一個值則設定自檔塊的「零件號碼」 iProperty。

  3. 建立此規則的下一個部份,此部份會寫將三個孔大小的值寫入至工作表中。

    複製程式碼塊

    GoExcel.CurrentCellValue("port_a_size") = port_a_size
    If block = "tee" Then
    GoExcel.CurrentCellValue("port_b_size") = port_b_size
    Else
    GoExcel.CurrentCellValue("port_b_size") = "N/A"
    End If
    GoExcel.CurrentCellValue("port_c_size") = port_c_size

    請注意我們如何對彎頭型式歧管使用 N/A 預留位置值。

  4. 加入其他部分至規則中,以從歧管擋塊元件所包含的參數指定儲存格值。

    複製程式碼塊

    GoExcel.CurrentCellValue("block_depth") = Parameter("manifold_block:1", "block_depth")
    GoExcel.CurrentCellValue("block_width") = Parameter("manifold_block:1", "block_width")
    GoExcel.CurrentCellValue("block_height") = Parameter("manifold_block:1", "block_height")

    請注意在此區段中對 manifold_block:1 元件的參考。

  5. 在規則中加入一個區段,以從活接閥元件和螺絲零件的零件號碼 (由 screw_part_number_rule 計算得出) 指定儲存格的值。

    複製程式碼塊

    GoExcel.CurrentCellValue("port_a_union_cap") = port_a_union_part_number
    GoExcel.CurrentCellValue("port_a_screw_kit") = port_a_screw_part_number
    If block = "tee" Then
    GoExcel.CurrentCellValue("port_b_union_cap") = port_b_union_part_number
    GoExcel.CurrentCellValue("port_b_screw_kit") = port_b_screw_part_number
    Else
    GoExcel.CurrentCellValue("port_b_union_cap") = "N/A"
    GoExcel.CurrentCellValue("port_b_screw_kit") = "N/A"
    End If
    GoExcel.CurrentCellValue("port_c_union_cap") = port_c_union_part_number
    GoExcel.CurrentCellValue("port_c_screw_kit") = port_c_screw_part_number

    如同規則先前區段中的 port_b_size 一樣,請注意與 Port B 相關的值的條件處理。

  6. 為結束此規則,將變更儲存至工作表。使用 GoExcel.Save 函數 (可由「片段」區域的「Excel Data Links」節點取得)

    複製程式碼塊

    GoExcel.Save
  7. 按一下「確定」以儲存並關閉規則。關閉時,工作表會隨著執行的規則進行更新。規則執行後會自動關閉工作表。
  8. 使用 Excel 開啟 part_number.xls,並確認是否已更新。如果已從 Excel 開啟工作表,則規則會無法更新工作表,因此請於再次執行規則前,先關閉工作表文件,

上一頁 | 下一頁