truth99
2013-01-18 17:27
采纳率: 0%
浏览 322
已采纳

struts2 导出excel后 打开提示“扩展名文件格式不一致”问题

下面是我的代码

[code="html"]

导出

[/code]
struts.xml配置:
[code="xml"]



true
application/vnd.ms-excel;charset=GBK
excelStream
attachment;filename=${fileName}
20480



[/code]
[code="java"]
package com.truth99.action;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

public class UserAction{

private InputStream excelStream;
private String fileName = "golf.xls";//导出excel

public String exportExcel(){
try{
StringBuffer sb = new StringBuffer();
sb.append("title1").append("\t").append("title2").append("\n");
//\t表示下一列,\n表示下一行
//导入的数据进行迭代,拼成字符串
for(;;){
sb.append("content1").append("\t").append("content2").append("\n");
}
//将字符串放入流中
excelStream = new ByteArrayInputStream(sb.toString().getBytes("GBK"), 0, sb.toString().getBytes("GBK").length);
}catch(Exception e){
}
return "excel";
}
public InputStream getExcelStream() {
return excelStream;
}
public void setExcelStream(InputStream excelStream) {
this.excelStream = excelStream;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
[/code]
打开后提示

[img]http://dl.iteye.com/upload/picture/pic/122710/aba33696-0451-31f2-884c-882e4061081d.jpg[/img]

哪位大神帮忙解决一下。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • jinbingchuan 2013-01-22 22:23
    已采纳

    像生成word、excel这类的文件,不是把后缀名改好之后就可以了,需要有第三方的框架来进行处理,就好比你把一个txt的文件直接把后缀名字改为excel的后缀名,你那样是打不开的,会报错误处理。
    可以看下 poi或者是jxl这些专门处理excel的文档。

    点赞 打赏 评论
  • piggerman 2013-01-18 19:22

    你不会认为随便一个文件名改成xls扩展后就变成excel、了吧,导出为excel、
    你需要用poi等软件输出excel、流

    点赞 打赏 评论
  • M44346460 2013-01-18 20:12

    楼主这种Excel导出方式,是本人有生以来,第一次见!人才。。。

    点赞 打赏 评论

相关推荐 更多相似问题