- 浏览: 7763 次
- 性别:
- 来自: 济南
最新评论
jxl操作excel文件---不使用模板
- 博客分类:
- java
<%@ page contentType="text/html;charset=UTF8" language="java" %>
<%@ include file="/commons/taglibs.jsp" %>
<%@ page errorPage="/jsp/errorpage.jsp"%>
<%@ page import = "hfmpBean.util.*"%>
<%@ page import = "hfmpBean.data.*"%>
<%@ page import = "java.util.*"%>
<%@ page session="false" %>
<%@ page import="jxl.Workbook" %>
<%@ page import="jxl.write.WritableCellFormat" %>
<%@ page import="jxl.write.WritableSheet" %>
<%@ page import="jxl.write.WritableWorkbook" %>
<%@ page import="jxl.write.WriteException" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.join.utils.*"%>
<%@ page import="java.io.OutputStream"%>
<%@ page import="java.io.File"%>
<jsp:useBean id="getData" class="hfmpBean.data.R_psnInfo" scope="page"/>
<jsp:useBean id="fileData" class="hfmpBean.data.R_psnInfoData" scope="page"/>
<jsp:useBean id="getBldData" class="hfmpBean.data.R_bldInfo" scope="page"/>
<jsp:useBean id="fileBldData" class="hfmpBean.data.R_bldInfoData" scope="page"/>
<html>
<head>
<title>无标题文档</title>
<style>
.xlsText{mso-number-format:"\@";}
</style>
</head>
<%
String regionNo = Convert.convertNull(request.getParameter("regionNo"));
String regionNameTemp = Convert.convertNull(request.getParameter("regionName"));
String regionName = Convert.convertGBK(request.getParameter("regionName"));
String bldNo = Convert.convertNull(request.getParameter("bldNo"));
String bldName = Convert.convertGBK(request.getParameter("bldName"));
String bldNameTemp = Convert.convertNull(request.getParameter("bldName"));
String returnback = Convert.convertNull(request.getParameter("returnback"));
String houseAttr ="";
String houseUse ="";
String struArea = "0.0";//建筑面积
String mainArea = "0.0";//主体面积
String annexeArea = "0.0";//附属面积
String houseNo = "";//房屋编号(15位):[2]区县编号+[6]自然幢+[2]单元+[2]楼层+[3]户
String houseSite = "";
String firstMode = "";//初缴模式
String accNo = "";
String name = "";
String zoneCode = "";
String bankCode = "";
String agentNoName = "";
String houseAttrName = "";
String houseUseName = "";
String firstModeName = "";
getBldData = fileBldData.getR_bldInfo(" a.bldNo='"+bldNo+"'");
zoneCode = getBldData.getZoneName();
bankCode = getBldData.getBankName();
agentNoName = getBldData.getAgentName();
int startBld = Code.getHouseNO_SQL(0)[0];
int endBld = Code.getHouseNO_SQL(0)[1];
String sqlStr = " substr(houseNo,"+startBld+","+endBld+")='"+bldNo+"' and a.state='9' order by houseNo";
ArrayList rsDatas = fileData.getR_psnInfos(sqlStr);
int num = 0;//序号
String subRegionName=Convert.convertNull(getBldData.getSubRegionName());
String titleName = regionName +" "+subRegionName+" "+bldName;
%>
<%
//response.setHeader("Content-disposition","inline; filename="+regionNameTemp+"-"+bldNameTemp+".xls");
%>
<%
String excelFile = request.getSession().getServletContext()
.getRealPath("/templates/export_psninfo.xls");
// List result = PlayService.xlsMembers();//一个简单的方法,列出Member类的所有实例
// 设置资源头信息
out.clearBuffer();
out=pageContext.pushBody();
response.reset();
//总是会报错,getOutputStream 已经
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "filename="+regionNameTemp+"-"+bldNameTemp+".xls");//attachment
// WritableWorkbook是JexcelApi的一个类。
// 以下可以理解为创建一个excel文件,然后在excel里面创建一个表
OutputStream os = response.getOutputStream();//取得输出流
WritableWorkbook workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
// Workbook wb = Workbook.getWorkbook(new File(excelFile));
// 第二步:通过模板得到一个可写的Workbook:第一个参数是一个输出流对象,第二个参数代表了要读取的模板
// File targetFile = new File("D:/test1.xls");
//WritableWorkbook workbook = Workbook.createWorkbook(targetFile, wb);
// 第三步:选择模板中名称为StateResult的Sheet:
//WritableSheet sheet = workbook.getSheet(1);
// 第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格:
// 组织excel文件的内容
jxl.write.Label label = null;
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
//设置日期格式
WritableCellFormat cellFormat1 = new WritableCellFormat();
cellFormat1.setLocked(false);
//设置单元格锁定
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setLocked(true);
//设置单元格未锁定
int excelCol = 0;
int row = 2;
try {
//生成第一行的信息
label = new jxl.write.Label(0, 0, "注:<b>业主类别:</b>1.自然人;2.法人 证件类别: 1.身份证;2.军官证;3.护照;4.法人代表证 ,99.其它 日期格式: 为YYYY-MM-RR(如:2007-1-1) 请填入对应的数字",format2);
sheet.addCell(label);
sheet.mergeCells(0,0,20,0); //将第一行合并
//生产第二行的信息
label = new jxl.write.Label(4,1, regionName+bldName,format2);
sheet.addCell(label);
sheet.mergeCells(4,1,5,1);
label = new jxl.write.Label(6, 1, "业主账户",format2);
sheet.addCell(label);
label = new jxl.write.Label(7, 1, "明细表",format2);
sheet.addCell(label);
//生成第三行的信息,
label = new jxl.write.Label(excelCol++, row, "序号");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "账号");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "房屋位置");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "主体面积");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "附属面积");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "业主姓名");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "业主类别");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "证件类别");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "证件号码");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "联系电话");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "房屋售价");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "购房日期");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "应缴维修金");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "收缴日期");
sheet.addCell(label);
jxl.write.DateTime dateTime;
jxl.write.DateFormat customDateFormat = new jxl.write.DateFormat("yyyy-MM-dd");//时间格式
WritableCellFormat dateFormat = new WritableCellFormat(customDateFormat);
//循环生成 excel表的数据
int j=3;
for(int i=0;i<rsDatas.size();i++){
R_psnInfo rr = (R_psnInfo) rsDatas.get(i);
excelCol = 0;
row =j;
label = new jxl.write.Label(excelCol++, row, String.valueOf(i),cellFormat);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row,rr.getAccNo(),cellFormat);
sheet.addCell(label);
// label.getString().se
label = new jxl.write.Label(excelCol++, row, rr.getHouseSite(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, rr.getStruArea(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, rr.getAnnexeArea(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row,"",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
j++;
//label = new jxl.write.Label(excelCol, row, formatDate.format(rr.getCreateTime()));
//sheet.addCell(label);
//
}
sheet.setColumnView(1,2);
sheet.setColumnView(1,20);
sheet.setColumnView(2,30);
sheet.setColumnView(3,10);
sheet.setColumnView(4,10);
sheet.setColumnView(5,20);
sheet.setColumnView(6,10);
sheet.setColumnView(7,10);
sheet.setColumnView(8,20);
sheet.setColumnView(9,20);
sheet.setColumnView(10,12);
sheet.setColumnView(11,12);
sheet.setColumnView(12,12);
sheet.setColumnView(13,12);
sheet.setColumnView(14,15);
sheet.getSettings().setProtected(true); //设置xls的保护,单元格为只读的
sheet.getSettings().setPassword("123"); //设置xls的密码
} catch (Exception e) {
e.printStackTrace();
} finally{
// 生成excel文件
workbook.write();
workbook.close();
os.close();
}
%>
</html>
<%@ include file="/commons/taglibs.jsp" %>
<%@ page errorPage="/jsp/errorpage.jsp"%>
<%@ page import = "hfmpBean.util.*"%>
<%@ page import = "hfmpBean.data.*"%>
<%@ page import = "java.util.*"%>
<%@ page session="false" %>
<%@ page import="jxl.Workbook" %>
<%@ page import="jxl.write.WritableCellFormat" %>
<%@ page import="jxl.write.WritableSheet" %>
<%@ page import="jxl.write.WritableWorkbook" %>
<%@ page import="jxl.write.WriteException" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.join.utils.*"%>
<%@ page import="java.io.OutputStream"%>
<%@ page import="java.io.File"%>
<jsp:useBean id="getData" class="hfmpBean.data.R_psnInfo" scope="page"/>
<jsp:useBean id="fileData" class="hfmpBean.data.R_psnInfoData" scope="page"/>
<jsp:useBean id="getBldData" class="hfmpBean.data.R_bldInfo" scope="page"/>
<jsp:useBean id="fileBldData" class="hfmpBean.data.R_bldInfoData" scope="page"/>
<html>
<head>
<title>无标题文档</title>
<style>
.xlsText{mso-number-format:"\@";}
</style>
</head>
<%
String regionNo = Convert.convertNull(request.getParameter("regionNo"));
String regionNameTemp = Convert.convertNull(request.getParameter("regionName"));
String regionName = Convert.convertGBK(request.getParameter("regionName"));
String bldNo = Convert.convertNull(request.getParameter("bldNo"));
String bldName = Convert.convertGBK(request.getParameter("bldName"));
String bldNameTemp = Convert.convertNull(request.getParameter("bldName"));
String returnback = Convert.convertNull(request.getParameter("returnback"));
String houseAttr ="";
String houseUse ="";
String struArea = "0.0";//建筑面积
String mainArea = "0.0";//主体面积
String annexeArea = "0.0";//附属面积
String houseNo = "";//房屋编号(15位):[2]区县编号+[6]自然幢+[2]单元+[2]楼层+[3]户
String houseSite = "";
String firstMode = "";//初缴模式
String accNo = "";
String name = "";
String zoneCode = "";
String bankCode = "";
String agentNoName = "";
String houseAttrName = "";
String houseUseName = "";
String firstModeName = "";
getBldData = fileBldData.getR_bldInfo(" a.bldNo='"+bldNo+"'");
zoneCode = getBldData.getZoneName();
bankCode = getBldData.getBankName();
agentNoName = getBldData.getAgentName();
int startBld = Code.getHouseNO_SQL(0)[0];
int endBld = Code.getHouseNO_SQL(0)[1];
String sqlStr = " substr(houseNo,"+startBld+","+endBld+")='"+bldNo+"' and a.state='9' order by houseNo";
ArrayList rsDatas = fileData.getR_psnInfos(sqlStr);
int num = 0;//序号
String subRegionName=Convert.convertNull(getBldData.getSubRegionName());
String titleName = regionName +" "+subRegionName+" "+bldName;
%>
<%
//response.setHeader("Content-disposition","inline; filename="+regionNameTemp+"-"+bldNameTemp+".xls");
%>
<%
String excelFile = request.getSession().getServletContext()
.getRealPath("/templates/export_psninfo.xls");
// List result = PlayService.xlsMembers();//一个简单的方法,列出Member类的所有实例
// 设置资源头信息
out.clearBuffer();
out=pageContext.pushBody();
response.reset();
//总是会报错,getOutputStream 已经
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "filename="+regionNameTemp+"-"+bldNameTemp+".xls");//attachment
// WritableWorkbook是JexcelApi的一个类。
// 以下可以理解为创建一个excel文件,然后在excel里面创建一个表
OutputStream os = response.getOutputStream();//取得输出流
WritableWorkbook workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
// Workbook wb = Workbook.getWorkbook(new File(excelFile));
// 第二步:通过模板得到一个可写的Workbook:第一个参数是一个输出流对象,第二个参数代表了要读取的模板
// File targetFile = new File("D:/test1.xls");
//WritableWorkbook workbook = Workbook.createWorkbook(targetFile, wb);
// 第三步:选择模板中名称为StateResult的Sheet:
//WritableSheet sheet = workbook.getSheet(1);
// 第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格:
// 组织excel文件的内容
jxl.write.Label label = null;
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
//设置日期格式
WritableCellFormat cellFormat1 = new WritableCellFormat();
cellFormat1.setLocked(false);
//设置单元格锁定
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setLocked(true);
//设置单元格未锁定
int excelCol = 0;
int row = 2;
try {
//生成第一行的信息
label = new jxl.write.Label(0, 0, "注:<b>业主类别:</b>1.自然人;2.法人 证件类别: 1.身份证;2.军官证;3.护照;4.法人代表证 ,99.其它 日期格式: 为YYYY-MM-RR(如:2007-1-1) 请填入对应的数字",format2);
sheet.addCell(label);
sheet.mergeCells(0,0,20,0); //将第一行合并
//生产第二行的信息
label = new jxl.write.Label(4,1, regionName+bldName,format2);
sheet.addCell(label);
sheet.mergeCells(4,1,5,1);
label = new jxl.write.Label(6, 1, "业主账户",format2);
sheet.addCell(label);
label = new jxl.write.Label(7, 1, "明细表",format2);
sheet.addCell(label);
//生成第三行的信息,
label = new jxl.write.Label(excelCol++, row, "序号");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "账号");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "房屋位置");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "主体面积");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "附属面积");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "业主姓名");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "业主类别");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "证件类别");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "证件号码");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "联系电话");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "房屋售价");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "购房日期");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "应缴维修金");
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "收缴日期");
sheet.addCell(label);
jxl.write.DateTime dateTime;
jxl.write.DateFormat customDateFormat = new jxl.write.DateFormat("yyyy-MM-dd");//时间格式
WritableCellFormat dateFormat = new WritableCellFormat(customDateFormat);
//循环生成 excel表的数据
int j=3;
for(int i=0;i<rsDatas.size();i++){
R_psnInfo rr = (R_psnInfo) rsDatas.get(i);
excelCol = 0;
row =j;
label = new jxl.write.Label(excelCol++, row, String.valueOf(i),cellFormat);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row,rr.getAccNo(),cellFormat);
sheet.addCell(label);
// label.getString().se
label = new jxl.write.Label(excelCol++, row, rr.getHouseSite(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, rr.getStruArea(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, rr.getAnnexeArea(),cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row,"",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
label = new jxl.write.Label(excelCol++, row, "",cellFormat1);
sheet.addCell(label);
j++;
//label = new jxl.write.Label(excelCol, row, formatDate.format(rr.getCreateTime()));
//sheet.addCell(label);
//
}
sheet.setColumnView(1,2);
sheet.setColumnView(1,20);
sheet.setColumnView(2,30);
sheet.setColumnView(3,10);
sheet.setColumnView(4,10);
sheet.setColumnView(5,20);
sheet.setColumnView(6,10);
sheet.setColumnView(7,10);
sheet.setColumnView(8,20);
sheet.setColumnView(9,20);
sheet.setColumnView(10,12);
sheet.setColumnView(11,12);
sheet.setColumnView(12,12);
sheet.setColumnView(13,12);
sheet.setColumnView(14,15);
sheet.getSettings().setProtected(true); //设置xls的保护,单元格为只读的
sheet.getSettings().setPassword("123"); //设置xls的密码
} catch (Exception e) {
e.printStackTrace();
} finally{
// 生成excel文件
workbook.write();
workbook.close();
os.close();
}
%>
</html>
发表评论
-
项目发布的时候,提示jdk180 不支持
2016-06-02 21:08 487选中项目,alt+enter,进入属性界面,点击“java b ... -
jdk配置
2016-06-02 21:09 316JAVA_HOME D:\Program Files (x86 ... -
post get HttpClient
2016-06-02 21:05 382package com.common; import jav ... -
滚动条 固定到上次录入的地方
2011-09-09 17:34 488在<head> </head> 之间增 ... -
jxl操作excel文件---使用模板
2011-08-18 16:57 1016<%@ page contentType="t ...
相关推荐
JXL使用模板通过el表达式生成excel文件,简单方便,可以直接在excel模板文件中设置样式,为什么老是改我 下载所需积分,我明明设置了2个积分。。。。
利用JXL技术支持模板和非模板的表格导出
jxl模版生成excel,采用类似EL表达式的方式生成模版
java 通过JXL架包,给excel文件添加水印,水印内容可自定义
NULL 博文链接:https://zyengogo.iteye.com/blog/1893921
jxl导出文件:将list导出到excel文件中,有模板无模板两种方式,只支持excel2003
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
jxl实现文件导出 上次只是简单的导出 没有实现excel样式 这次实现了样式 在com test newtest包中实现了样式功能 JXLExcelUtils java封装了excel导出的功能 实现的是模板导出 采用的样式是复制模板的样式 ...
java向EXCEL中写入数据。里面有一个ExcelWrite.java的文件和一个jxl的jar包。
jxl实现excel大数据导出,26000条记录,测试导出时间是19s,例子不算复杂,没有excel样式的处理,可以自己扩展哈,有数据库文件,部署即可看到效果!!! 有三个功能:代码构建数据的导出、数据库数据的导出(从配置...
网上很多例子,都是用Jxl读或者写excel,本文实现的功能就是将数据源in.xls的第几行第几列数据写入到out.xls的第几行第几列,不覆盖out.xls其他原有的数据。
SpringBoot整合poi实现Excel文件的导入和导出,其中单独分装出一个ExcelFormatUtil工具类来实现对单元格数据格式进行判断。
jxl结合IBATIS,导出EXCEL。读取EXCEL模板,把数据写到新的EXCEL中。sql语句中要起别名,别名第一位为字母,第二位包括第二位要是整数数字,这个数字决定...EXCEL模板中的工作表名要与IBATIS配置文件中的ID名字一致。
JxlExcel 是基于jxl封装的java excel读写库,特性如下:可以像读写文件一样方便的读取数据和写入数据数据支持数组、map、bean三种方式支持xml配置excel模板如何使用?模板定义在类路径下新建一个jxl-excel.xml的模板...
使用jxl实现poi简单的功能,通过反射原理动态验证内容及导入导出excel文件
Jxl与Poi模板导出Excel文件,超级简单,内有源码,可以看我的博客 https://blog.csdn.net/xll_csdn/article/details/106862121 收费不高,赚点积分,互利互惠,哈哈!
压缩包里面的代码很完全,一个是读取类操作,一个是写入类操作,有主函数,可以直接运行,写入时要有模板为空的Excel文件,里面用的是blank.xls,压缩包里面也有。此代码可以在项目开发中直接调用。
用Java输出图表的场景和这个一样,POI、JXL对操作Excel图表无能为力 但Excel支持脚本的,也有工作表载入事件,所以也可以用同样的原理实现 只不过这次客户端不再是浏览器而是Excel应用程序。 这样交代的应该比较...
实现Excel的上传和下载 存在两种格式的上传和下载,分别对应POI和JXL 可以实现根据Excel模板导出,自定义Excel样式导入 形成自定义的Excel报表等功能。项目为Maven项目,JDK采用1.8
至于Excel的写操作,对较高版本的Excel2007,POI提供了很好的支持,主要流程是第一步构建工作薄和电子表格对象,第二步在一个流中构建文本文件,第三步使用流中产生的数据替换模板中的电子表格。这种方式也可以处理...