gpt4 book ai didi

java - 在 java rest 服务中发送 excel 作为下载响应时要设置的编码类型是什么

转载 作者:行者123 更新时间:2023-11-29 09:01:01 27 4
gpt4 key购买 nike

我正在努力发送 excel 文件作为对 JAVA 休息服务中下载的 ajax 请求的响应。但是编码类型似乎不正确。这是我的java类

@Path("/ExcelExport")
public class ExportExcel {
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
@Path("/export")
public Response getBrowserLanguage(String meterdata) throws JSONException
{
JSONObject output = new JSONObject(meterdata);
JSONArray gridArray = output.getJSONArray("finalJsonObj");
JSONObject gridRow=null;
ResponseBuilder response=null;
try {
final HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");
String colNames[]=null;
Row row =null;
Cell cell = null;
int cellnum = 0;
if(gridArray.length()>0){
row = sheet.createRow(0);
gridRow=(JSONObject)gridArray.get(0);
colNames=JSONObject.getNames(gridRow);
for (String colName: colNames) {
cell = row.createCell(cellnum++);
cell.setCellValue(colName);
}
for (int i=0;i<gridArray.length();i++) {
row = sheet.createRow(i+1);
cellnum = 0;
gridRow=(JSONObject)gridArray.get(i);
for (String colName: colNames) {
cell = row.createCell(cellnum++);
cell.setCellValue(gridRow.getString(colName));
}
}
}
response= Response.ok(new StreamingOutput() {
@Override
public void write(OutputStream outputStream) throws IOException,
WebApplicationException {
workbook.write(outputStream);
}
},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return response.header("Content-Disposition","attachment; filename=export.xls").build();
}
}

在 Xmlhttprequest 的成功函数中,我执行以下操作:

window.location = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheetExpor,' + xmlhttp.responseText;

Excel 文件打开,但编码似乎不同,因此显示一些垃圾文本。

提前致谢

最佳答案

以下是 excel 的有效 MIME 类型。

对于 BIFF .xls 文件

application/vnd.ms-excel

来源:http://blogs.msdn.com/b/vsofficedeveloper/archive/2008/05/08/office-2007-open-xml-mime-types.aspx

对于Excel2007及以上的.xlsx文件

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

关于java - 在 java rest 服务中发送 excel 作为下载响应时要设置的编码类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421422/

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