gpt4 book ai didi

java - 如何使用Java+Struts2在浏览器中打开Excel工作表?

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:02 26 4
gpt4 key购买 nike

我正在尝试在浏览器中打开 xls 工作表,而不是在 MS Excel 中。我尝试过 Desktop.getDesktop().browse(fileName.toURI()); 但不起作用。这是execute方法的完整代码:

public String execute() throws Exception
{
String rutaArchivo = System.getProperty("catalina.base")+"/ejemploExcelJava.xls";

File archivoXLS = new File(rutaArchivo);

if(archivoXLS.exists()) {
archivoXLS.delete();
}
archivoXLS.createNewFile();

Workbook libro = new HSSFWorkbook();

FileOutputStream archivo = new FileOutputStream(archivoXLS);

Sheet hoja = libro.createSheet("Mi hoja de trabajo 1");

Date fechaActual = new Date();
for (int f = 0; f < 10; f++) {
Row fila = hoja.createRow(f);
for (int c = 0; c < 5; c++) {
Cell celda = fila.createCell(c);
if (f == 0) {
celda.setCellValue("Encabezado #" + c);
} else {
celda.setCellValue(fechaActual.getHours() + ":" + fechaActual.getMinutes());
}
}
}
libro.write(archivo);
archivo.close();
Desktop.getDesktop().browse(archivoXLS.toURI());
}

无论如何,这可以从 Microsoft Office Excel 应用程序打开 excel,但只能通过从 Netbeans 运行项目来实现。如果我尝试在没有 Netbeans 的情况下从 Tomcat 打开它,它不起作用。

最佳答案

  1. 您可以使用 Stream Result 输出任何二进制结果;
  2. 要输出 Excel 文件(通过读取现有文件和创建新文件),您需要根据您要流式传输的 Excel 文件的类型设置正确的内容类型(通常为 XLS 或 XLSX),like described in this answer .
  3. 您可以通过更改默认的内容处置来指示用户代理需要在浏览器中打开文件(而不是要求下载/使用桌面应用程序打开) strong> 从附件内联
  4. 内联打开未知二进制文件由客户端决定:如果您流式传输 JPEG,浏览器将轻松打开它;如果您流输出 PDF(或 Excel 文档、Word 文档等),浏览器将搜索合适的插件(例如 Adob​​e Acrobat),如果找不到,将尝试使用桌面应用程序打开它(例如 Adob​​e Reader)无论如何。这就是为什么在 Internet Explorer(内置该插件)中打开 Excel 可以工作,而在 Firefox 中打开却不行。

关于java - 如何使用Java+Struts2在浏览器中打开Excel工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23910345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com