请问怎么做能实现一个按钮来导出为单独的excel文件
12 个解决方案
#1
不知道是不是我理解错了。
楼主应该会生成excel文件的方法,不会的话,网上多了去了
是不是想说前后台怎么交互啊
servlet可以搞定
不过比较喜欢用dwr,基于ajax,方便
楼主应该会生成excel文件的方法,不会的话,网上多了去了
是不是想说前后台怎么交互啊
servlet可以搞定
不过比较喜欢用dwr,基于ajax,方便
#2
实话实说 , 刚开始做 不会~~
#3
jxl,poi
#4
有歧义么~ 把查询出来已经以表格形式放在页面上的数据 怎么样导出为excel啊~
#5
vbscript貌似可以做到
#6
求~方法
#7
OutputStream os=response.getOutputStream();
//String fileName = "c:\\aaa.xls";//
WritableWorkbook wbook = Workbook.createWorkbook(os);
// WritableWorkbook wbook = Workbook.createWorkbook(os); //
// 建立excel文件
WritableSheet wsheet = wbook.createSheet("固定资产表", 0); // 工作表名称
// 设置Excel字体
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat titleFormat = new WritableCellFormat(wfont);
String[] title = {"资产编号","部门组织","审批单号","请购单号","设备类别","资产类型","品牌","型号","用户",
"序列号","主机名","IP地址","网卡MAC地址" ,"CPU型号","显示器","显示器序列号","内存","硬盘","操作系统",
"大区/BU","省办/加工厂","存放地","安装的商用软件","备注","状态","购买日期"};
// 设置Excel表头
for (int i = 0; i < title.length; i++) {
Label excelTitle = new Label(i, 0, title[i], titleFormat);
wsheet.addCell(excelTitle);
}
int c = 1; // 用于循环时Excel的行号
for(AssetsPO temp:lsPO){
Label content1 = new Label(0, c, temp.getAssets().getAssetNo());
Label content2 = new Label(1 , c, temp.getAssets().getDeptFullName());
Label content3 = new Label(2 , c, temp.getAssets().getApprovalId());
Label content4 = new Label(3 , c, temp.getAssets().getRequistionId());
Label content5 = new Label(4 , c, temp.getDeviceName());
Label content6 = new Label(5 , c, temp.getAssetsTypeName());
Label content7 = new Label(6 , c, temp.getBrandName());
Label content8 = new Label(7 , c, temp.getModelName());
Label content9 = new Label(8 , c, temp.getAssets().getUserId());
Label content10 = new Label(9 , c, temp.getAssets().getSerialNo());
Label content11 = new Label(10, c, temp.getAssets().getHostName());
Label content12 = new Label(11, c, temp.getAssets().getIp());
Label content13 = new Label(12, c, temp.getAssets().getMac());
Label content14 = new Label(13, c, temp.getAssets().getCpu());
Label content15 = new Label(14, c, temp.getDisplayName());
Label content16 = new Label(15, c, temp.getAssets().getDisplaySerialNo());
Label content17 = new Label(16, c, temp.getAssets().getRam());
Label content18 = new Label(17, c, temp.getAssets().getHardDisk());
Label content19 = new Label(18, c, temp.getOsName());
Label content20 = new Label(19, c, temp.getRegionName());
Label content21 = new Label(20, c, temp.getFactoryName());
Label content22 = new Label(21, c, temp.getAssets().getPlace());
Label content23 = new Label(22, c, temp.getSoftwareNames());
Label content24 = new Label(23, c, temp.getAssets().getRemark());
Label content25 = new Label(24, c, temp.getStatusName());
Label content26 = new Label(25, c, new SimpleDateFormat("yyyy-MM-dd").format(temp.getAssets().getPurchaseDate()));
wsheet.addCell(content1 );
wsheet.addCell(content2 );
wsheet.addCell(content3 );
wsheet.addCell(content4 );
wsheet.addCell(content5 );
wsheet.addCell(content6 );
wsheet.addCell(content7 );
wsheet.addCell(content8 );
wsheet.addCell(content9 );
wsheet.addCell(content10);
wsheet.addCell(content11);
wsheet.addCell(content12);
wsheet.addCell(content13);
wsheet.addCell(content14);
wsheet.addCell(content15);
wsheet.addCell(content16);
wsheet.addCell(content17);
wsheet.addCell(content18);
wsheet.addCell(content19);
wsheet.addCell(content20);
wsheet.addCell(content21);
wsheet.addCell(content22);
wsheet.addCell(content23);
wsheet.addCell(content24);
wsheet.addCell(content25);
wsheet.addCell(content26);
c++;
}
response.setHeader("Content-disposition",
"attachment; filename="+URLEncoder.encode("固定资产表.xls","UTF-8"));
response.setContentType("application/vnd.ms-excel; charset=\"utf-8\"");
wbook.write(); // 写入文件
wbook.close();
有用的,我在用的
#8
做适当调整
#9
用js直接导出页面的表格,这是最简单的方法,网上搜索一下
#10
怎么在页面中调用?
#11
在页面用正常的ACTION或者servlet 后台的时候就把上面的那个代码参考一下
你可以在查询出 考勤的数据后 调用一个方法 该方法 就是楼上贴的
关键是思路
你要清楚思路 就很简单了
你可以在查询出 考勤的数据后 调用一个方法 该方法 就是楼上贴的
关键是思路
你要清楚思路 就很简单了
#12
怎么做????
#1
不知道是不是我理解错了。
楼主应该会生成excel文件的方法,不会的话,网上多了去了
是不是想说前后台怎么交互啊
servlet可以搞定
不过比较喜欢用dwr,基于ajax,方便
楼主应该会生成excel文件的方法,不会的话,网上多了去了
是不是想说前后台怎么交互啊
servlet可以搞定
不过比较喜欢用dwr,基于ajax,方便
#2
实话实说 , 刚开始做 不会~~
#3
jxl,poi
#4
有歧义么~ 把查询出来已经以表格形式放在页面上的数据 怎么样导出为excel啊~
#5
vbscript貌似可以做到
#6
求~方法
#7
OutputStream os=response.getOutputStream();
//String fileName = "c:\\aaa.xls";//
WritableWorkbook wbook = Workbook.createWorkbook(os);
// WritableWorkbook wbook = Workbook.createWorkbook(os); //
// 建立excel文件
WritableSheet wsheet = wbook.createSheet("固定资产表", 0); // 工作表名称
// 设置Excel字体
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat titleFormat = new WritableCellFormat(wfont);
String[] title = {"资产编号","部门组织","审批单号","请购单号","设备类别","资产类型","品牌","型号","用户",
"序列号","主机名","IP地址","网卡MAC地址" ,"CPU型号","显示器","显示器序列号","内存","硬盘","操作系统",
"大区/BU","省办/加工厂","存放地","安装的商用软件","备注","状态","购买日期"};
// 设置Excel表头
for (int i = 0; i < title.length; i++) {
Label excelTitle = new Label(i, 0, title[i], titleFormat);
wsheet.addCell(excelTitle);
}
int c = 1; // 用于循环时Excel的行号
for(AssetsPO temp:lsPO){
Label content1 = new Label(0, c, temp.getAssets().getAssetNo());
Label content2 = new Label(1 , c, temp.getAssets().getDeptFullName());
Label content3 = new Label(2 , c, temp.getAssets().getApprovalId());
Label content4 = new Label(3 , c, temp.getAssets().getRequistionId());
Label content5 = new Label(4 , c, temp.getDeviceName());
Label content6 = new Label(5 , c, temp.getAssetsTypeName());
Label content7 = new Label(6 , c, temp.getBrandName());
Label content8 = new Label(7 , c, temp.getModelName());
Label content9 = new Label(8 , c, temp.getAssets().getUserId());
Label content10 = new Label(9 , c, temp.getAssets().getSerialNo());
Label content11 = new Label(10, c, temp.getAssets().getHostName());
Label content12 = new Label(11, c, temp.getAssets().getIp());
Label content13 = new Label(12, c, temp.getAssets().getMac());
Label content14 = new Label(13, c, temp.getAssets().getCpu());
Label content15 = new Label(14, c, temp.getDisplayName());
Label content16 = new Label(15, c, temp.getAssets().getDisplaySerialNo());
Label content17 = new Label(16, c, temp.getAssets().getRam());
Label content18 = new Label(17, c, temp.getAssets().getHardDisk());
Label content19 = new Label(18, c, temp.getOsName());
Label content20 = new Label(19, c, temp.getRegionName());
Label content21 = new Label(20, c, temp.getFactoryName());
Label content22 = new Label(21, c, temp.getAssets().getPlace());
Label content23 = new Label(22, c, temp.getSoftwareNames());
Label content24 = new Label(23, c, temp.getAssets().getRemark());
Label content25 = new Label(24, c, temp.getStatusName());
Label content26 = new Label(25, c, new SimpleDateFormat("yyyy-MM-dd").format(temp.getAssets().getPurchaseDate()));
wsheet.addCell(content1 );
wsheet.addCell(content2 );
wsheet.addCell(content3 );
wsheet.addCell(content4 );
wsheet.addCell(content5 );
wsheet.addCell(content6 );
wsheet.addCell(content7 );
wsheet.addCell(content8 );
wsheet.addCell(content9 );
wsheet.addCell(content10);
wsheet.addCell(content11);
wsheet.addCell(content12);
wsheet.addCell(content13);
wsheet.addCell(content14);
wsheet.addCell(content15);
wsheet.addCell(content16);
wsheet.addCell(content17);
wsheet.addCell(content18);
wsheet.addCell(content19);
wsheet.addCell(content20);
wsheet.addCell(content21);
wsheet.addCell(content22);
wsheet.addCell(content23);
wsheet.addCell(content24);
wsheet.addCell(content25);
wsheet.addCell(content26);
c++;
}
response.setHeader("Content-disposition",
"attachment; filename="+URLEncoder.encode("固定资产表.xls","UTF-8"));
response.setContentType("application/vnd.ms-excel; charset=\"utf-8\"");
wbook.write(); // 写入文件
wbook.close();
有用的,我在用的
#8
做适当调整
#9
用js直接导出页面的表格,这是最简单的方法,网上搜索一下
#10
怎么在页面中调用?
#11
在页面用正常的ACTION或者servlet 后台的时候就把上面的那个代码参考一下
你可以在查询出 考勤的数据后 调用一个方法 该方法 就是楼上贴的
关键是思路
你要清楚思路 就很简单了
你可以在查询出 考勤的数据后 调用一个方法 该方法 就是楼上贴的
关键是思路
你要清楚思路 就很简单了
#12
怎么做????