2011-03-03 43 views
0

我正在爲大學做一個項目,並創建了一個創建csv文件的程序。我希望有一個按鈕,您可以點擊它然後用excel打開csv文件。謝謝java使用excel打開csv文件

+0

我怕你忘記了這個問題。 – aioobe

+0

你的意思是當你點擊一個在java程序中製作的按鈕時,你最終應該打開.csv文件? –

回答

3

明知MSOFFICE被安裝在系統上,你應該能夠與它的命令行中使用命令

excel myDoc.csv 

執行從Java這樣的命令打開一個文檔,你可以使用這個快照:

File myCSVFile; //reference to your file here 
String execString = "excel " + myCSVFile.getAbsolutePath(); 
Runtime run = Runtime.getRuntime(); 
try { 
    Process pp = run.exec(execString); 
} catch(Exception e) { 
    e.printStackTrace(); 
} 

這是有些粗糙,當然需要造型,但通常它應該工作。此外,爲了更加優雅,您還可以使用java.util.prefs.Preferences類來檢查Windows註冊表,以確定是否安裝了MsOffice,如果是,則在哪裏。但是請注意,如果你正在計算MsExcel(正如我從你的文章中所瞭解的那樣),這將會自動取消Java的多平臺方法。希望這有助於:)

+0

感謝和多平臺的好點,但嘿! –

3

如果您使用的是Java 6,則可以使用Desktop類。還閱讀Opening, Editing, and Printing a File

+0

不能同意更多。 – Sid

+0

好點!但請注意,Desktop.open(文件文件)方法使用系統默認程序打開文件,而不是使用特定的程序(如本例中的Excel)。很可能是CSV設置爲用另一個程序打開,如Notepad ++或其他。 – Coryffaeus

+0

@Coryffaeus你是對的。但恕我直言,它應該是用戶選擇什麼程序打開CSV文件。而且'Desktop'解決方案也可以處理沒有安裝Excel的情況。 –

0

您可以使用JExcel API。這對你來說很容易。

0

'excel myDoc.csv'命令不起作用。你應該使用'開始excel myDoc.csv'。

所以更新的代碼是

File myCSVFile; //reference to your file here 
String execString = "start excel " + myCSVFile.getAbsolutePath(); 
Runtime run = Runtime.getRuntime(); 
try { 
    Process pp = run.exec(execString); 
} catch(Exception e) { 
    e.printStackTrace(); 
}