檢查excel工作表是否存在我想編寫嘗試從 excel 打開特定工作表的 JMP 腳本。
問題是如果我的一個 excel 文件不包括請求的工作表,那麼 JMP 腳本 crush 。
我需要建議如何預防? (我的意思是,在打開 excel 之前檢查它是否包含請求的工作表......)
這是我的代碼:
add_to_DB = function({file_path, sheet, header_line, data_line},
new_dt = 打開(
文件路徑,
工作表(表),
工作表設置(
標題從行開始( header_line ),
數據開始於行 (data_line))
);
……
Re: 檢查excel工作表是否存在如果您想查找 Excel 工作簿中確實存在的工作表名稱列表,您可以使用類似:
sheetList = 獲取 Excel 工作表( "$SAMPLE_IMPORT_DATA\Team Results.xlsx" );
顯示(工作表列表);
布賴恩·科科倫
JMP開發
Re: 檢查excel工作表是否存在效果很好。
謝謝
Re: 檢查excel工作表是否存在我懷疑有沒有碰撞.
我不知道腳本有什麼方法可以檢查 Excel 工作簿中是否存在特定工作表或任何其他外部文件類型中的特定內容。 所以你的解決方案不會奏效。
像您這樣的錯誤情況在現實生活中經常發生。 在腳本中有一些方法可以處理它們。 你學過JSL了嗎? 你應該閱讀幫助>圖書>腳本指南. 當前版本中的第 8 章涵蓋了編程方法比如錯誤處理。
當所需的工作表存在時,您確定您的代碼有效嗎?
一種方法是注意 Open() 函數返回的內容。 返回日誌的是什麼? 你看過了嗎? 您可以將結果存儲在一個變量中,然後測試它是否成功。
或者,您可以使用內置的錯誤處理機制來捕獲錯誤條件。 在您的情況下,此機制將像以下示例一樣工作:
Try(
new_dt = Open(
file_path,
Worksheets( sheet ),
Worksheet Settings( Headers Start on Row( header_line ), Data Starts on Row( data_line ) )
),
// code in case Open() fails
);;
// code in case Open() succeeds