导出Excel表格文件 .xls
第一步: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相关推荐
- js网页导出excel表格文件
下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:
- c#读取生成excel表格文件xls、xlsx格式文件
全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#存储生成excel表格格式xls.xlsx格式的文件 需要电脑安装对应版本的office,并且在项目中引用excel 测试代码 static vo ...
- Java,导出Excel表格文件
引用三方封装的技术框架 Alibaba/EasyExcel JAVA 解析Excel工具EasyExcel Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的 ...
- Java后端与Vue前端导出Excel表格文件并解决乱码和文件打不开
Java 需要用到 poi 两个依赖包,Maven如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> &l ...
- android 输出xlsx文件格式,Android导出Excel表格文件
1.首先再Android添加jar包:jxl-2.6.12.jar 2.创建javaBean类,用于存储需要写入表格中的数据 public class DemoBean { private Strin ...
- 前端从后端导出excel表格文件的两种方法
大部分前端开发人员在做项目的过程中应该都遇到过这个问题: 在前端点击一个导出或者下载的按钮,从后端导出包含列表中的数据的excel文件. 那么如何实现呢? 方法一: 如果项目中没有涉及要要权限验证的问 ...
- 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)
问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...
- 【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)
[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件 ...
- 表格导出计算机,电脑怎么导出excel表格数据-如何将百度指数数据导出到Excel表格...
系统没有导出功能,电脑表格里的数据有什么方法拿... 将网页表格数据导入到Excel中的方法: 第一步,将包括所需表格的网页打开,并按CTRL C把网址复制到剪贴板,以备下一步使用. 第二步,打开运行 ...
最新文章
- 检查网站是否可以正常访问
- Spring boot中使用Swagger2
- SAP Spartacus Org unit detail实例的单例特性
- tomcat内存溢出问题解决思路
- C# Types Type Members
- 一分钟教你在PyTorch跑模型的时候提取中间层查看图片
- 使用spring 配置数据源,并用数据源得到连接,操作sql
- CSS animation 与 transition 有何区别?
- 算法 Tricks(六)—— 判断一个数是否为完全平方数
- 18岁智商低的表现_孩子反应慢并不是智商低,三个原因很关键,第一个跟父母有关...
- el图oracle,element-ui之el-image-viewer(图片查看器)
- 输入输出工具技术(ITTO)要背吗?——软考高项笔记8
- Java文件上传同时携带参数
- 这年头数学不好,连表情包都看不懂了…
- 《一切都是最好的安排》脑图
- 收藏不迷路 —— Flutter 转场动效大合集
- 看过来,u盘删除的文件还能找回吗?两种方法教给你
- 云计算(Day 8)
- 如何在AD中导入CAD画的DXF/DWG文件?
- ReentrantReadWriteLock——读写锁如何升级,为何读写锁不能插队?
热门文章
- oauth2.0 password模式
- 给她做一个专属微信聊天机器人
- python安装失败找不到指定路径_使用[WinError 2]安装python-crfsuite失败系统找不到指定的文件...
- 保存好用工具2---转载
- 数据库连接时的时区问题
- 360度MG996R舵机使用方法
- 计算机软件中级职称 入职,计算机职称论文.doc
- 强大的图片批量处理工具ImageTuner单文件绿色破解版
- python3 excel数据处理_求推荐python3入门教程,适合新手的(python excel数据处理)
- c语言立flag是什么意思,“立flag”是什么意思