2014-02-21 36 views
1

要求:一個Excel工作表出現在一個網絡驅動器上,說'P:'驅動器的IP地址類似於192.XXX.X.XXX。這個驅動器映射到我的本地系統上。在這個網絡驅動器中,在一個文件夾中(將其命名爲「我的文件夾」)存在Excel表格,可以從許多其他計算機訪問該表格。但一次只能在一臺計算機上以可編輯模式打開。從java程序打開一個excel文件

我只想寫一個桌面java程序,它不斷在後臺運行,並不斷檢查excel表單是否處於可編輯模式。只要它發現工作表處於可編輯模式,程序就會在本地系統的默認程序中打開該工作表。

+0

到目前爲止,你有沒有嘗試過任何東西?你究竟在哪裏卡住? – Kayz

+1

爲什麼你想使用Java來做這件事?你有沒有想過使用VBA? –

+0

@凱茲:感謝您的回覆。我不知道從哪裏開始。其實我以前沒有遇到過這種情況。 – Manish

回答

1

所以基本上你需要一個文件是否可以寫入或不寫入。如果可寫,用默認程序打開。

你可以這樣做。

run() { 
    while(isActive) { 
     File f = new File("book1.xlsx"); 
     if(f.canWrite()) { 
      Runtime.getRuntime().exec("excel book1") ; 
     } else { 
      sleep(time); 
     } 
    } 
    } 
} 

以上示例可能會幫助您完成您的要求。

+0

我修改了代碼並將其用於我的目的,但它不打開任何文件。從我這邊的更多信息是,f.canWrite()總是返回false,無論該文件是否被其他人打開或沒有..我發佈我的代碼在下面..文件f =新文件(「\\ 192.XXX.X.XXX:\\Project Status \\ Project Status 2014.xls」); \t \t while(isActive){0122}如果(f.canWrite()){ \t \t \t \t嘗試{ \t \t \t \t \t調用Runtime.getRuntime()EXEC(「創先爭優\\ 192.XXX.X.XXX:\\項目狀態\\項目2014年狀況「); \t \t \t \t}趕上(IOException的發送){ \t \t \t \t \t e.printStackTrace(); \t \t \t \t} \t \t \t \t isActive = FALSE; \t \t \t} \t \t} – Manish