gpt4 book ai didi

java - 如何将使用jxl.jar生成的excel文件从服务器发送到客户端

转载 作者:行者123 更新时间:2023-12-02 00:05:41 25 4
gpt4 key购买 nike

我正在使用 struts 来开发我的 Web 应用程序。我编写了一个方法,它生成 excel 文件并根据我传递的数据模型保存它。在我的本地计算机上运行良好,因为 tomcat 存在于本地。但是现在我已将我的应用程序移至中央服务器。现在如果我使用它存储的方法在服务器中生成 excel 文件,而不是在访问服务器的客户端计算机中。我需要通过 http 将其从服务器传递到客户端。我该怎么做?

public static void populateExcelDoc(List<ColumnList> listOfColumns,RowList rowlist,String filename)
{
try
{
WorkbookSettings ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));

WritableWorkbook workbook = Workbook.createWorkbook(new File(filename+".xls"), ws);
WritableSheet s = workbook.createSheet("Sheet1", 1);
writeDataSheetifx1(s,listOfColumns,rowlist);
workbook.write();
workbook.close();

Process p =
Runtime.getRuntime()
.exec("rundll32 url.dll,FileProtocolHandler " + filename+".xls");
}
catch(IOException e)
{
e.printStackTrace();
}
catch(WriteException e)
{
e.printStackTrace();
}
}

这就是我当前的代码。我需要进行哪些更改?我应该使用 HttpServletResponse 响应吗?

最佳答案

在 Struts2 中,有 stream 结果用于将数据发送到 HttpServletResponse。

在您的 struts.xml 中配置您的操作以使用 stream 结果。

<action name="exceldoc" method="populateExcelDoc" class="ExcelDocAction">
<result name="success" type="stream">
<param name="inputName">inputStream</param>
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename=excel.xls</param>
</result>
</action>

并在您的操作中创建带有 getters/setters 的 private InputStream inputStream; 并在您的方法内将文件写入其中。

关于java - 如何将使用jxl.jar生成的excel文件从服务器发送到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13967064/

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