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

可可

我正在尝试在浏览器中而不是在MS Excel中打开xls表。我已经尝试过,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中打开它,那么它将无法正常工作。

安德里亚·利吉奥斯(Andrea Ligios)
  1. 您可以使用Stream Result输出任何二进制结果
  2. 要输出一个Excel文件(通过读取一个现有文件并创建一个新文件),您需要根据要流式传输的excel文件的类型(通常是XLS或XLSX)设置正确的Content Type如下所述回答
  3. 您可以通过将默认的“内容处置”更改指示用户代理需要在浏览器中打开文件(而不是要求通过桌面应用程序下载/打开文件attachmentinline
  4. 内联打开一个未知的二进制文件取决于客户端:如果您流式传输JPEG,浏览器将轻松打开它;如果您流式传输PDF(或Excel文档,Word文档等),浏览器将搜索适当的插件(例如Adobe Acrobat),如果找不到,将尝试使用桌面应用程序将其打开(例如Adobe Reader)。这就是为什么在Internet Explorer(具有内置插件)中打开Excel却不能在Firefox中打开Excel的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java按钮在浏览器中打开链接?

如何使用Docker容器在浏览器中打开Rabbitmq?

如何在Capybara和Selenium中打开浏览器

如何从CefSharp 3在本机浏览器中打开链接

如何知道在移动或PC浏览器中打开的网站?

如何使用Excel VBA在PC和Mac中打开默认浏览器?

如何配置iTerm2在特定的浏览器中打开URL?

如何使用Electron在默认浏览器中打开链接

如何在浏览器中打开Blob对象?

使用对象浏览器中定义的工作表名称和工作簿定义来设置工作表

如何打开chrome:// apps中列出的浏览器应用

如何从IntelliJ在Web浏览器中打开Java文档

使用Ext.js中的Ajax请求从浏览器打开或保存excel文件附件

如何在Safari浏览器中打开/关闭Java?

如何更改默认浏览器以在wampserver中打开localhost

如何在android浏览器中打开pdf文件?

struts2中的<s:push>标签如何工作?

如何在GWT中打开新的浏览器页面

从浏览器中在Eclipse中打开.java文件

在Java中打开非默认浏览器

如何在像phpmyadmin这样的浏览器中打开mysql工作台?

如何更改默认网页以在浏览器中打开

如何在Epic浏览器中打开VPN

如何使用Java在Selenium Webdriver中的2个浏览器之间切换

如何打开浏览器以及我在浏览器中添加的所有插件

如何使用 Excel VBA 从使用文件浏览器选择的工作簿中复制工作表?

如何在默认浏览器中从 BottomNavigationBarItem 打开 URL?

如何使用 VBA 在浏览器中打开 URL?

过滤表格时如何在 IE(非默认浏览器)中打开 Excel 超链接