Java實現開啟Excel檔案,執行VBA指令碼並監測檔案狀態
阿新 • • 發佈:2019-01-02
/** * @author DevinLiu * 一鍵釋出報告 * 2018年9月19日下午2:44:19 */ public class GenerateReport { public String report(){ //檔名 String FileName="E:\\demo\\SMS_20180320_1014.xlsm"; try { File file=new File(FileName); if(file.exists()){ //開啟檔案 Runtime.getRuntime().exec("cmd /c start "+FileName+""); }else{ System.out.println("檔案不存在"); return ""; } Thread thread=new Thread(); thread.sleep(2000); while(true){ thread.sleep(2000); if(file.renameTo(file)){ //檔案未操作 break; } } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("檔案操作結束"); return ""; } }
excel注意兩點:
把點選控制元件事件(巨集)放入Workbook_Open() 下面,載入完畢自動觸發按鈕控制元件
Private Sub Workbook_Open()
執行結束自動儲存關閉檔案
Workbooks(1).Save
Application.Quit