Excel模板导出时报错,后台打印路径是对的,模板文件也读取到了,但是报这个错误:
Unable to read entire block; 88 bytes read; expected 512 bytes“”
‘无法读取整个模块,读取88字节;预期为512字节;’百度了下,不知道该怎么修改;
代码如下:
package com.bky.excel.poi;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bky.excel.Excel;
import com.bky.excel.ExcelEnum;
import com.bky.excel.ExcelUtil;
import com.bky.excel.ExcelVo;
public class PoiCxgl {
private static Logger logger = LoggerFactory.getLogger(PoiCxgl.class);
public static String exportExcel(Map<String, Object> map, HttpServletRequest request) {
int status = (Integer) map.get("status");
List<?> list = (List<?>) map.get("list");
BigDecimal je = (BigDecimal) map.get("sum");
String time = (String) map.get("time");
String sOut = "";// 导出路径
String sMould = "";// Excel模板名
if (ExcelEnum.FYPZ.getCode() == status) {
sMould = ExcelEnum.FYPZ.getExcel();
System.out.println("sMould:"+sMould);
}
String url = request.getSession().getServletContext().getRealPath("/") + Excel.EXCEL_URL;
System.out.println("url:"+url);
File file = new File(url + sMould + Excel.FILE_TYPE_EXCEL);// 读取模板文件
System.out.println("file:"+file);
POIFSFileSystem fs;
try {
fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs);
ExcelVo eVo = ExcelUtil.setCellInfo(list, wb, je);
if (list != null && list.size() > 0) {
if (status == ExcelEnum.FYPZ.getCode()) {
CxglExcel.PzExcel(eVo,je,time);
}
}
// 修改模板内容导出新模板
sOut = sMould + Excel.FILE_TYPE_EXCEL;
FileOutputStream out = new FileOutputStream(sOut);
wb.write(out);
out.close();
} catch (FileNotFoundException e) {
logger.error("模板文件未找到");
} catch (IOException e) {
System.out.println("messgae:"+e.getMessage());
logger.error(e.getMessage());
}
return sOut;
}
}
求大神指点!!
<p>试试 pageoffice 把. pageoffice 已经把接口封装好了.不需要文档的上传下载就可以实现在线打开文档. 代码调用非常简单.</p>
<p>pageOffice引出excel文档,不容易出错</p>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。