第一步:JSP上 表单提交请求

1)jsp上 表单定义:

<form id="dataForm" action="ReptStat/getXSLoutunitlist.htm" method="post">
<input id="nodecode" name="nodecode" type="hidden" value="${nodecode}"/>
</form>

2)Javascript 提交表单:

function outxsl(){

var xsloutdeptid=combo_dept.getActualValue();

$("#nodecode").val(“12345”);//修改参数

$("#dataForm")[0].submit();

}

第二步:Jsp将请求传到后他,Servlet进行处理:

//导出Excell

@RequestMapping("/getXSLoutunitlist")
public void XSLoutunitlist(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("utf-8");
DBOperator db = null;

String sql=null;

// System.out.println("------------start+end+outunittype:"+start_date1+";"+end_date1+";"+outunittype);
List list=new ArrayList();
Map map1=new HashMap<String, Object>();
try {
db = new DBOperator();
sql="........."
list=db.find(sql, new Object[]{hosnum,nodecode});
if(list==null || list.size()<=0){
Map map2=new HashMap();
map2.put("记账日期"," ");
map2.put("往来单位"," ");
map2.put("数量"," ");
map2.put("进价金额"," ");
map2.put("售价金额"," ");
map2.put("进销差价"," ");
list.add(map2);
}

response.setContentType("application/x-msdownload;charset=gbk");
String title=hspname+"出库往来单位统计表";
String dateStr = DateUtil.dateToString(new Date(),"yyyyMMdd");
String fileName = title+"-"+dateStr+".xls";
String fileNameTemp = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileNameTemp.getBytes("utf-8"), "gbk"));
OutputStream os = response.getOutputStream();
ExcelUtils eu = new ExcelUtils();
eu.export(os, title, new String[]{"记账日期","往来单位","数量","进价金额","售价金额","进销差价"},
new int[]{28,30,15,15,15,15}, DbUtils.ListMapToListObject(list));
os.flush();
os.close();
db.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
db.freeCon();
}

}

第三步:用到的工具类

1)DbUtils类中的ListMapToListObject()方法

public static List<Object[]> ListMapToListObject(List<Map<String, Object>> list) {
List<Object[]> result = new ArrayList<Object[]>();
for (Map<String, Object> map : list) {
Object[] objects = new Object[map.size()];
int i = 0;
for (Map.Entry<String, Object> entry : map.entrySet()) {
objects[i++] = entry.getValue();
}
result.add(objects);
}
return result;
}

2)ExcelUtils中的export()方法:

public void export(File templateFile, OutputStream os, String title, String[] legends, int[] sizes, List<Object[]> datas, int offsetX, int offsetY) throws BiffException, IOException, RowsExceededException, WriteException {
WritableWorkbook wbook = null;
WritableSheet wsheet = null;
if(templateFile!=null){
Workbook wb = Workbook.getWorkbook(templateFile);
wbook = Workbook.createWorkbook(os, wb);
wsheet = wbook.getSheet(0);
}else{
wbook = Workbook.createWorkbook(os); // 建立excel文件
wsheet = wbook.createSheet("第一页", 0); // sheet名称
}

if (title != null && !title.trim().equals("")) {// 添加标题
wsheet.mergeCells(offsetX, offsetY, offsetX+datas.get(0).length-1, offsetY); // 合并单元格
Label wlabel = new Label(offsetX, offsetY, title, this.titleWcf);
wsheet.addCell(wlabel);
}

// 如果有标题的话,要设置一下偏移
int rowIndex = 1;
if (title == null || title.trim().equals("")) {
rowIndex = 0;
}

//创建表头
if(legends!=null && sizes!=null){
rowIndex = rowIndex + this.buildLegend(wsheet, offsetX, offsetY+rowIndex, legends, sizes);
}

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
WritableCell wcell = null;//单元格
//往Excel输出数据
for (int i=0;i<datas.size();i++) {
for(int j=0;j<datas.get(i).length;j++){
Object value = datas.get(i)[j];
if(value instanceof java.lang.Number) {
wcell = new Number(offsetX+j, offsetY+rowIndex, ((java.lang.Number)value).doubleValue(), this.contentWcf);
}else if(value instanceof java.util.Date) {
wcell = new Label(offsetX+j, offsetY+rowIndex, sdf.format((java.util.Date)value), this.contentWcf);
}else{
wcell = new Label(offsetX+j, offsetY+rowIndex, (java.lang.String)value, this.contentWcf);
}
wsheet.addCell(wcell);
}
rowIndex++;
}

//创建额外内容
buildExtraContent(wsheet, offsetX, offsetY+rowIndex);

wbook.write(); // 写入文件
wbook.close();
os.flush();
os.close();

导出Excel表格文件 .xls相关推荐

  1. js网页导出excel表格文件

    下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:

  2. c#读取生成excel表格文件xls、xlsx格式文件

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#存储生成excel表格格式xls.xlsx格式的文件 需要电脑安装对应版本的office,并且在项目中引用excel 测试代码 static vo ...

  3. Java,导出Excel表格文件

    引用三方封装的技术框架 Alibaba/EasyExcel JAVA 解析Excel工具EasyExcel Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的 ...

  4. Java后端与Vue前端导出Excel表格文件并解决乱码和文件打不开

    Java 需要用到 poi 两个依赖包,Maven如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> &l ...

  5. android 输出xlsx文件格式,Android导出Excel表格文件

    1.首先再Android添加jar包:jxl-2.6.12.jar 2.创建javaBean类,用于存储需要写入表格中的数据 public class DemoBean { private Strin ...

  6. 前端从后端导出excel表格文件的两种方法

    大部分前端开发人员在做项目的过程中应该都遇到过这个问题: 在前端点击一个导出或者下载的按钮,从后端导出包含列表中的数据的excel文件. 那么如何实现呢? 方法一: 如果项目中没有涉及要要权限验证的问 ...

  7. 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)

    问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...

  8. 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

    [PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...

  9. 表格导出计算机,电脑怎么导出excel表格数据-如何将百度指数数据导出到Excel表格...

    系统没有导出功能,电脑表格里的数据有什么方法拿... 将网页表格数据导入到Excel中的方法: 第一步,将包括所需表格的网页打开,并按CTRL C把网址复制到剪贴板,以备下一步使用. 第二步,打开运行 ...

最新文章

  1. 检查网站是否可以正常访问
  2. Spring boot中使用Swagger2
  3. SAP Spartacus Org unit detail实例的单例特性
  4. tomcat内存溢出问题解决思路
  5. C# Types Type Members
  6. 一分钟教你在PyTorch跑模型的时候提取中间层查看图片
  7. 使用spring 配置数据源,并用数据源得到连接,操作sql
  8. CSS animation 与 transition 有何区别?
  9. 算法 Tricks(六)—— 判断一个数是否为完全平方数
  10. 18岁智商低的表现_孩子反应慢并不是智商低,三个原因很关键,第一个跟父母有关...
  11. el图oracle,element-ui之el-image-viewer(图片查看器)
  12. 输入输出工具技术(ITTO)要背吗?——软考高项笔记8
  13. Java文件上传同时携带参数
  14. 这年头数学不好,连表情包都看不懂了…
  15. 《一切都是最好的安排》脑图
  16. 收藏不迷路 —— Flutter 转场动效大合集
  17. 看过来,u盘删除的文件还能找回吗?两种方法教给你
  18. 云计算(Day 8)
  19. 如何在AD中导入CAD画的DXF/DWG文件?
  20. ReentrantReadWriteLock——读写锁如何升级,为何读写锁不能插队?

热门文章

  1. oauth2.0 password模式
  2. 给她做一个专属微信聊天机器人
  3. python安装失败找不到指定路径_使用[WinError 2]安装python-crfsuite失败系统找不到指定的文件...
  4. 保存好用工具2---转载
  5. 数据库连接时的时区问题
  6. 360度MG996R舵机使用方法
  7. 计算机软件中级职称 入职,计算机职称论文.doc
  8. 强大的图片批量处理工具ImageTuner单文件绿色破解版
  9. python3 excel数据处理_求推荐python3入门教程,适合新手的(python excel数据处理)
  10. c语言立flag是什么意思,“立flag”是什么意思