2013-04-15 28 views
0

這段代碼我已經部署在服務器端,使用XLs.I的宏將rep文件(BO文件)轉換爲xls文件,通過此jsp調用調用宏並將.rep文件轉換爲xls文件。 。當從服務器系統的客戶端調用jsp時,不要打開xls表單,但是當我嘗試運行與獨立java代碼相同的代碼時,它就可以工作。在這裏,我附上了一個示例代碼。可以請幫助我。以編程方式生成XLS時出現的問題

<%@ page import="java.io.*" %><%@ page contentType="application/vnd.ms-excel"%> <html><head></head> <body> <% String cmdLine = "\"C:/Program Files (x86)/Microsoft Office/Office12/EXCEL.EXE\" /e/\"D:\\North%20America\\Workspace%20Defined_2013-03-23-06-50-50.rep\" D:\\NewFolder\\Converter.xlsm"; try{Process p = Runtime.getRuntime().exec(cmdLine); } catch(Exception e){ e.printStackTrace(); } %> </body> </html> 
+0

請添加詳細的錯誤消息。 –

+0

您是否清楚Java/JSP代碼在web服務器中運行,而不是在webbrowser中運行?您似乎預計某種程度上Java/JSP代碼是在物理上與webbrowser運行的機器相同的機器上執行的。這完全是不真實的。 JSP是一個HTML代碼生成器。在瀏覽器中右鍵單擊頁面,執行*查看源代碼*以查看JSP生成的和瀏覽器檢索的內容。 – BalusC

回答

0

你不能這樣做。如果您在調用jsp時需要打開excel,則需要設置響應的內容類型。即。應用/ vnd.ms-的excel

<%@ page contentType="application/vnd.ms-excel" %> 

這將指示瀏覽器輸入的數據流是的MS Excel和瀏覽器將處理它相應

+0

這在clinet端打開一個XL文件。我想用某個名字將xls文件保存到服務器文件夾中。 – user2273919

+0

這段代碼我已經在服務器端部署了一個使用XLs.I的宏將rep文件(BO文件)轉換爲xls文件,通過這個jsp調用和宏將.rep文件轉換爲xls文件。 <%@頁面進口= 「java.io. *」 %><%@頁面的contentType = 「應用/ vnd.ms-EXCEL」 %> <% 字符串CMDLINE = 「\」 C:/Program Files(x86)/ Microsoft Office/Office12/EXCEL.EXE \「/ e/\」D:\\ North%20America \\ Workspace%20Defined_2013-03-23-06-50-50.rep \「D: \\ NewFolder \\ Converter.xlsm「; try {Process p = Runtime.getRuntime()。exec(cmdLine); } catch(Exception e){ \t e.printStackTrace(); } %> – user2273919

+0

你想要做的是從根本上不正確和不可能的。 Jsp在服務器中執行,但是你試圖訪問駐留在客戶端的文件(而jsp被執行)。您需要將所有這些文件移動到服務器端,並生成一個excel文件並通過網絡發送給客戶端,同時我認爲您的技術選擇也不正確。你真的想要2層架構嗎?如果你做的是JSP正確的選擇? –