itext实现有表格的导出word

public String exportInfo() throws DocumentException, IOException{
//定义A4页面大小
Rectangle rectPageSize = new Rectangle(PageSize.A4);
// rectPageSize = rectPageSize.rotate();
Document doc = new Document(rectPageSize);//创建文档,并设置纸张的大小
ByteArrayOutputStream baos = new ByteArrayOutputStream();//创建字节输出流
RtfWriter2.getInstance(doc, baos);//创建书写器与doc对象关联,并通过书写器将文档输入到输入流
doc.open();//打开文档
Font titleFont = setFontStyle("华文中宋", 16f, Font.BOLD);//设置标题的格式
Font headerFont = setFontStyle("华文中宋", 10.5f, Font.BOLD);//设置标题的格式
Font contextFont = setFontStyle("宋体", 10.5f, Font.NORMAL );//设置正文格式
//创建标题
Paragraph title = new Paragraph( "单位基本情况", FontFactory.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.BOLD,new Color(0, 0, 0)));
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
doc.add(title);
Table table = new Table(16);//设置表格
int[] width ={16,4,4,4,4,4,4,12,20,4,4,4,4,4,4,8};
table.setWidths(width);//设置每列所占比例
table.setWidth(95);//占页面宽度
table.setAlignment(Element.ALIGN_CENTER);// 居中显示
// table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示
table.setAutoFillEmptyCells(true); // 自动填满
table.setBorderWidth(5); // 边框宽度
//table.setBorderColor(new Color(0, 125, 255)); // 边框颜色
//table.setPadding(5);// 衬距,看效果就知道什么意思了
table.setSpacing(0);// 即单元格之间的间距
table.setBorder(5);// 边框

Organization org =organizationService.getInstanceByOrgId(orgId);
Cell cell = new Cell(new Phrase("01单位名称",headerFont));// 单元格
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
// cell.setHorizontalAlignment(10);
cell.setRowspan(1);// 设置表格为1行

table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgName(), contextFont));
cell.setColspan(15);
table.addCell(cell);

cell = new Cell(new Phrase("02单位地址",headerFont));
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
// cell.setHorizontalAlignment(10);
cell.setRowspan(3);// 设置表格为3行
table.addCell(cell);
String[] address = org.getOrgRegion().split(",");

cell = new Cell(new Phrase(address[0]+"省(自治区、直辖市)"+" "+address[1]+"地(区、市、州、盟)"+"\n"+address[2]+"县(区、市、旗)",contextFont));
cell.setRowspan(3);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setColspan(15);
table.addCell(cell);

cell = new Cell( new Phrase("03邮政编码",headerFont));
cell.setHeader(true);
//cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
// cell.setHorizontalAlignment(10);
cell.setRowspan(1);// 设置表格为1行
table.addCell(cell);
cell = new Cell(new Phrase(org.getZipCode(),contextFont));
cell.setColspan(7);
table.addCell(cell);

cell = new Cell(new Phrase("04行政区划代码",headerFont));
//cell.setHeader(true);
//cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//cell.setRowspan(1);
table.addCell(cell);
cell = new Cell(new Phrase(org.getAdmDvsCode()+"",contextFont));
cell.setColspan(7);
table.addCell(cell);

cell = new Cell(new Phrase("05单位负责人",headerFont));
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(2);
table.addCell(cell);

cell = new Cell(new Phrase("姓 名",contextFont));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgRulerName(),contextFont));
cell.setColspan(4);
table.addCell(cell);
cell = new Cell(new Phrase("职务/职称",contextFont));
cell.setColspan(1);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgRulerPost(),contextFont));
cell.setColspan(7);
table.addCell(cell);
cell = new Cell(new Phrase("办公电话",contextFont));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgRulerPhone(),contextFont));
cell.setColspan(4);
table.addCell(cell);
cell = new Cell(new Phrase("电子邮件",contextFont));
cell.setColspan(1);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgRulerEmail(),contextFont));
cell.setColspan(7);
table.addCell(cell);

cell = new Cell(new Phrase("06责任部门",headerFont));
cell.setHeader(true);
//cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(1);
table.addCell(cell);
cell = new Cell(new Phrase(org.getOrgRespDept(),contextFont));
cell.setColspan(15);
table.addCell(cell);

cell = new Cell(new Phrase("07责任部门联系人",headerFont));
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(3);
table.addCell(cell);
cell = new Cell(new Phrase("姓 名",contextFont));
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase(org.getContactPerson(),contextFont));
cell.setColspan(4);
table.addCell(cell);
cell = new Cell(new Phrase("职务/职称",contextFont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setColspan(1);
table.addCell(cell);
cell = new Cell(new Phrase(org.getContactPersonPost(),contextFont));
cell.setColspan(7);
table.addCell(cell);
cell = new Cell(new Phrase("办公电话",contextFont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setColspan(3);
table.addCell(cell);
cell = new Cell(new Phrase(org.getContactPhone(),contextFont));
cell.setColspan(4);
table.addCell(cell);
cell = new Cell(new Phrase("电子邮件",contextFont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(2);
cell.setColspan(1);
table.addCell(cell);
cell = new Cell(new Phrase(org.getContactEmail(),contextFont));
cell.setColspan(7);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(2);
table.addCell(cell);
cell = new Cell(new Phrase("移动电话",contextFont));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(1);
cell.setColspan(3);
table.addCell(cell);
cell = new Cell(new Phrase(org.getContactMobile(),contextFont));
cell.setColspan(4);
table.addCell(cell);

cell = new Cell(new Phrase("08隶属关系",headerFont));
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(3);
table.addCell(cell);
String MemberShip = operLogService.selectValueFromDict("super_unit", org.getOrgMemberShip());
List<Object[]> ol = new ArrayList<Object[]>();
ol = operLogService.getKeyValueData(null, "super_unit");
String strms ="";
for(int i = 0;i<ol.size();i++){
if(ol.get(i)[1].equals(MemberShip)){
strms+= "☑"+ol.get(i)[1]+" ";
}else{
strms+="□"+ol.get(i)[1]+" ";
}
if(i==2){
strms+="\n";
}
}
cell = new Cell(new Phrase(strms,contextFont));
cell.setColspan(15);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(3);
table.addCell(cell);

cell = new Cell(new Phrase("09单位类型",headerFont));
cell.setHeader(true);
//cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(1);
table.addCell(cell);
String OrgType = operLogService.selectValueFromDict("unit_type", org.getOrgType());
ol = operLogService.getKeyValueData(null, "unit_type");
String strType ="";
for(int i = 0;i<ol.size();i++){
if(ol.get(i)[1].equals(OrgType)){
strType+= "☑"+ol.get(i)[1]+" ";
}else{
strType+="□"+ol.get(i)[1]+" ";
}
}
cell = new Cell(new Phrase(strType,contextFont));
cell.setColspan(15);
table.addCell(cell);

cell = new Cell( new Phrase("10行业类别",headerFont));
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
//cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(1);
table.addCell(cell);
String OrgIndSector = operLogService.selectValueFromDict("industry_cat", org.getOrgIndSector());
ol = operLogService.getKeyValueData(null, "industry_cat");
String strOis ="";
for(int i = 0;i<ol.size();i++){
String blankNum = "";
String str = ol.get(i)[1].toString();
if(str.length()==2){
blankNum=" ";
}else if(str.length()==4){
blankNum=" ";
}else if(str.length()==6){
blankNum=" ";
}else if(str.length()==8){
blankNum=" ";
}else if(str.length()==9){
blankNum=" ";
}
if(ol.get(i)[1].equals(OrgIndSector)){

strOis+= "☑"+ol.get(i)[1]+blankNum;
}else{
strOis+="□"+ol.get(i)[1]+blankNum;
}
if((i+1)%4==0){
strOis+="\n";
}
}
cell = new Cell(new Phrase(strOis,contextFont));
cell.setColspan(15);
table.addCell(cell);

..............(省略无用)
doc.add(table);
doc.close();
fileInputStream = new ByteArrayInputStream(baos.toByteArray());
baos.close();

return "exportSuccess";


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值