我正在創建一個web應用程序,我想在結果中顯示一個excel圖標。當用戶點擊圖標時,它應該在客戶端機器上打開一個電子表格,其中有一些數據由服務器發送(客戶端將安裝excel)。如何在客戶端創建一個excel電子表格
我寫了一些代碼來從webservice在我的本地機器上創建excel。
public class App
{
public static void main(String[] args)
{
try {
URL oracle = new URL("http://someService.com");
URLConnection yc =null;
yc = oracle.openConnection();
//Get the workbook instance for XLS file
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet");
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
int rowNum =0;
while ((inputLine = in.readLine()) != null) {
Row row = sheet.createRow(rowNum++);
String[] coloumns = inputLine.split("\t");
int cellNum =0;
for(String coloumn: coloumns){
coloumn.
Cell cell = row.createCell(cellNum++);
cell.setCellValue(coloumn);
}
System.out.println(inputLine);
}
in.close();
FileOutputStream out =
new FileOutputStream(new File("C:\\libraries\\new.xls"));
workbook.write(out);
out.close();
System.out.println("Excel written successfully..");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
這工作得很好。 它所做的只是讀取來自Web服務的數據,並在C:\ libraries \ new.xls的機器中創建電子表格。
現在,如果我在網絡應用程序,我想打開客戶機上的電子表格。我不必保存表格。只需打開數據。
如何使用Web服務中的這些數據在客戶機上打開電子表格?
編輯
這是我的新的服務器代碼:
@RequestMapping(value = "/Excel")
public void getFile(HttpServletResponse response){
OutputStream out =null;
try {
out = response.getOutputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setContentType("application/x-ms-excel");
try {
URL oracle = new URL("http://someService.com");
URLConnection yc =null;
yc = oracle.openConnection();
//Get the workbook instance for XLS file
IOUtils.copy(yc.getInputStream(),out);
out.flush();
System.out.println("Excel written successfully..");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
所以現在我跑的Web應用程序和什麼都沒有發生?我應該在前端做些什麼來調用這個流。
你需要有這樣一個servlet或類似的,而不是一個主要方法裏面。你使用的是什麼應用程序服務器/框架?你應該從那裏開始。 – 2013-02-27 19:39:25
我使用的是spring mvc – javaMan 2013-02-27 19:40:26
上面的代碼只是一些代碼來驗證apache poi是否可以完成這項工作。它的確如此。現在我想將其遷移到我的網絡應用程序。但無法弄清楚。我如何在客戶機上調用excel? – javaMan 2013-02-27 19:43:20