java 导出excel-阿里云开发者社区

开发者社区> 技术mix呢> 正文

java 导出excel

简介:
+关注继续查看

直入主题。上代码。

//导出excel
@RequestMapping(value="excel")
public void excel(String excelname,String title,@RequestParam("district3") String district3,@RequestParam("district4") String district4,@RequestParam("pname")String pname,@RequestParam("ename") String ename, OutputStream os,HttpServletResponse response) throws Exception{
response.setContentType("application/vnd.ms-excel");
//response.addHeader("Content-Disposition", "attachment;filename=\""+excelname+".xls\"");
String excelname_=new String(excelname.getBytes("gbk"), "ISO8859-1");
response.addHeader("Content-Disposition", "attachment; filename=\""
+ excelname_ + ".xls\"");
WritableWorkbook workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet(excelname, 0); //生成名为excelname的工作表,參数0表示这是第一页 
   WritableFont font1= new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD); 
WritableCellFormat format1=new WritableCellFormat(font1); 
format1.setAlignment(jxl.format.Alignment.CENTRE);//设置为居中
format1.setVerticalAlignment(VerticalAlignment.CENTRE); //设置垂直居中;
format1.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN,Colour.BLACK);
format1.setBorder(jxl.format.Border.BOTTOM,jxl.format.BorderLineStyle.NONE);
//给列设置宽度;  
sheet.setColumnView(0,10);
sheet.setColumnView(1,35);
        sheet.setColumnView(2, 35);  
        sheet.setColumnView(3, 15);  
        sheet.setColumnView(4, 15);  
        sheet.setColumnView(5, 15);
        sheet.setColumnView(6, 35);
        sheet.setColumnView(7, 35);
        sheet.setColumnView(8, 20);
        sheet.setColumnView(9, 35);

sheet.mergeCells(0,0,9,0);
Label label=new Label(0,0,title,format1); //创建表头, 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) 
   sheet.addCell(label); 
   sheet.setRowView(0,800);//设置第一行高度
   
   //设置填报单位
   sheet.mergeCells(0,1,9,1);
   font1= new WritableFont(WritableFont.TIMES,14,WritableFont.BOLD); 
   format1=new WritableCellFormat(font1); 
   format1.setBorder(jxl.format.Border.RIGHT,jxl.format.BorderLineStyle.THIN,Colour.BLACK);
   format1.setVerticalAlignment(VerticalAlignment.CENTRE); //设置垂直居中;
label=new Label(0,1,"填报单位: (盖章)",format1); //创建表头, 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) 
   sheet.addCell(label); 
   sheet.setRowView(1,600);//设置第一行高度
   
   sheet.setRowView(2,500);
font1=new WritableFont(WritableFont.createFont("楷体_GB2312"),12,WritableFont.BOLD);
WritableCellFormat format2=new WritableCellFormat(font1);
format2.setAlignment(jxl.format.Alignment.CENTRE);//设置为居中
format2.setVerticalAlignment(VerticalAlignment.CENTRE); //设置垂直居中;
//format2.set
//设置边框
   format2.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN,Colour.BLACK);
     
   int startindex=2;
label=new Label(0,startindex,"序号",format2); 
   sheet.addCell(label); 
label=new Label(1,startindex,"演练组织单位",format2);
sheet.addCell(label); 
label=new Label(2,startindex,"演练科目名称",format2);
sheet.addCell(label); 
label=new Label(3,startindex,"演练类型",format2);
sheet.addCell(label); 
label=new Label(4,startindex,"演练内容",format2);
sheet.addCell(label); 
label=new Label(5,startindex,"演练时间",format2);
sheet.addCell(label);
label=new Label(6,startindex,"演练地点",format2);
sheet.addCell(label);
label=new Label(7,startindex,"拟參加应急演练的单位及部门",format2);
sheet.addCell(label);
label=new Label(8,startindex,"拟參加演练的人数",format2);
sheet.addCell(label);
label=new Label(9,startindex,"备注",format2);
sheet.addCell(label);

/*生成一个保存数字的单元格 
必须使用Number的完整包路径,否则有语法歧义 
单元格位置是第二列。第一行,值为789.123 
jxl.write.Number number = new jxl.write.Number(2,0,789.123); 
sheet.addCell(number); */
jxl.write.Number number=null;


//从数据库查询数据
Map<String, String> map=new HashMap<String, String>();
Map<String, String> like=new HashMap<String, String>();
if(StringUtils.notNull(district3)){
map.put("s.district3", district3);
}
if(StringUtils.notNull(district3)){
map.put("s.district4", district4);
}
if(StringUtils.notNull(pname)){
map.put("plansdrillname", pname);
}
if(StringUtils.notNull(ename)){
like.put("s.enterprisename", ename);
}
List<CpPlansdrillDto> dtos = cpPlansdrillService.getStatisticsList(map, like, 1,10000);
font1=new WritableFont(WritableFont.createFont("楷体_GB2312"),10,WritableFont.NO_BOLD);
format2=new WritableCellFormat(font1);
format2.setAlignment(jxl.format.Alignment.CENTRE);//设置为居中
format2.setVerticalAlignment(VerticalAlignment.CENTRE); //设置垂直居中;
format2.setWrap(true);//自己主动换行
format2.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN,Colour.BLACK);
//数据保存
for (int i = 0; i <dtos.size(); i++) 
{    
CpPlansdrillDto m=dtos.get(i);
String data="";
if(m.getPlansdrilldate()!=null){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
java.util.Date date=new java.util.Date();  
data=sdf.format(date);
}
int pcount=0;
if(StringUtils.notNull(m.getPlansdrillcount())){
pcount=Integer.parseInt(m.getPlansdrillcount());
}
String deparmetn=StringUtils.notNull(m.getPlansdrilldepartment())?

m.getPlansdrilldepartment():"";
number = new jxl.write.Number(0,i+startindex+1,i+1,format2); 
   sheet.addCell(number);
label=new Label(1,i+startindex+1,m.getPlansdrillunits(),format2);
sheet.addCell(label);
label=new Label(2,i+startindex+1,m.getPlansdrillname(),format2);
sheet.addCell(label);
label=new Label(3,i+startindex+1,m.getPlansdrilltype().equals("1")?

"现场演练":"桌面演练",format2);
sheet.addCell(label);
label=new Label(4,i+startindex+1,m.getPlansdrillcontent().equals("1")?

"单项演练":"综合演练",format2);
sheet.addCell(label);
label=new Label(5,i+startindex+1,data,format2);  
   sheet.addCell(label); 
label=new Label(6,i+startindex+1,m.getPlansdrilladdress(),format2);
sheet.addCell(label);
label=new Label(7,i+startindex+1,deparmetn,format2);
sheet.addCell(label);
number=new jxl.write.Number(8,i+startindex+1,pcount,format2);
   sheet.addCell(number);
label=new Label(9,i+startindex+1,m.getNote(),format2);
sheet.addCell(label);
    }

workbook.write();
workbook.close();
os.close();
response.flushBuffer();
}










本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5117018.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java POI操作execel导出
最近项目当中在使用POI将数据填充置row和cell等行和列,最后导出成execel到前端。一开始使用的方式是一个个去赋值,但是这样做有点麻烦,代码也有点长,不太好维护。
1144 0
通过Response输出方式导出Excel
        目前见过这么几种类型的导出Excel表:         1,NPIO方式,高仿Java.功能比较强大,但是比较重。         2, 前辈封装的。。。。
1105 0
Web程序导出Excel文档
版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/8938475         今天接到一个任务,把数据库里面的数据导出到Excel文档。
632 0
Java数据导出(写)Excel文件 解析
  在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java写入数据到excel表格方法:   1.添加jar文件     java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
835 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4623 0
Java Apache POI 操作 Excel 导出
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82655653 ...
4253 0
EasyUI----DataGrid 导出 Excel
<div class="markdown_views"> <p>最近做的安防项目有个功能,需要把DataGrid中的数据导出,下面通过代码一步一步的介绍; <br> 首先在js中写一个扩展类,主要的功能是把DataGrid中的数据转换成Excel的XML格式</p> <pre class="prettyprint"><code class=" hljs scilab"><
1952 0
java Excel 导出
  package com.web.utils; import java.io.File; import java.util.List; import org.apache.
788 0
C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
/// /// DataGridView导出至Excel,解决问题:打开Excel文件格式与扩展名指定格式不一致 /// /// 数据源表格 /// 导出时是否显示excel界面 /// ...
1542 0
+关注
2969
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《SaaS模式云原生数据仓库应用场景实践》
立即下载
文娱运维技术
立即下载
《看见新力量:二》电子书
立即下载