itext生成word文档方法

发布时间:2021-12-28 13:31:39阅读:60609
从事程序员职业的朋友可能都会遇到类似情况,经常需要将一个表格导出成word来供客户打印,这个解决问题的方法可以用itext生成word文档方法来实现。当然用excel导出也可以实现,但是如果表格主要是文字信息的话使用word文档更合适。
需要的jar包:iTextAsian.jar,iText-rtf-2.1.3.jar,iText-2.1.3.jar;
参考代码:
response.addHeader("Content-disposition", "attachment;filename=\"" + new String("信息处理表.doc".getBytes("gb2312"), "ISO8859-1"));

String letrId = request.getParameter("letrId");

// 创建word文档,并设置纸张的大小

com.lowagie.text.Document document = new com.lowagie.text.Document(PageSize.A4);

try {

RtfWriter2.getInstance(document,"e:\123.doc");

document.open();

Font f = new Font();

String topic= "处理反馈表";

Paragraph p = new Paragraph(topic, new Font(Font.NORMAL, 18,Font.BOLDITALIC, new Color(0, 0, 0)));

p.setAlignment(1);

document.add(p);

// 设置中文字体

BaseFont bfFont = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

//创建有三列的表格

Table table = new Table(3);

table.setBorderWidth(1);

table.setBorderColor(Color.BLACK);

table.setPadding(0);

table.setSpacing(0);

//添加表头的元素

Cell cell = new Cell(title);// 单元格

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

cell.setHeader(true);

cell.setColspan(3);// 设置表格为三列

cell.setRowspan(2);// 设置表格为2行

table.addCell(cell);

table.endHeaders();// 表头结束

cell = new Cell("时间:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph((vl.getLetrDate()).toString()));

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

cell.setColspan(2);

table.addCell(cell);

cell = new Cell("重要程度:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph((vl.getImptLevel()).toString()));

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

cell.setColspan(2);

table.addCell(cell);

//测试1

cell = new Cell("测试1:");

cell.setRowspan(5);// 当前单元格占两行,纵向跨度

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

table.addCell("姓名:");

table.addCell(vl.getPernName());

table.addCell("性别:");

table.addCell(vl.getPernSex());

table.addCell("公司:");

table.addCell(vl.getPernUnit());

table.addCell("职务:");

table.addCell(vl.getPernPost());

table.addCell("地址:");

table.addCell(vl.getPernAddress());

// 测试2

cell = new Cell("测试2:");

cell.setRowspan(4);// 当前单元格占两行,纵向跨度

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

table.addCell("姓名:");

table.addCell(vl.getWrirName());

table.addCell("单位 :");

table.addCell(vl.getWrirOrganization());

table.addCell("性别:");

table.addCell(vl.getWrirSex());

table.addCell("电话:");

table.addCell(vl.getWrirTnur());

// 简要内容

cell = new Cell("简要内容:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph(vl.getLetrNote()));

cell.setColspan(2);

table.addCell(cell);

// 测试3

cell = new Cell("测试3:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph(vl.getDeptVerifyOpinion()));

cell.setColspan(2);

table.addCell(cell);

// 测试4

cell = new Cell("测试4:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph(vl.getChargeVerifyOpinion()));

cell.setColspan(2);

table.addCell(cell);

//测试5

cell = new Cell("测试5:");

cell.setHorizontalAlignment(Element.ALIGN_CENTER);

table.addCell(cell);

cell = new Cell(new Paragraph(vl.getHandleContent()));

cell.setColspan(2);

table.addCell(cell);

document.add(table);

document.add(new Paragraph("\n"));

document.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (DocumentException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

在word中可以按照你所要求的格式,利用itext的table、cell、图片等“画”出想要的文档格式,然后再将数据往其中填充;如果想要将报表导出成pdf格式的,用itext也可以很轻松的实现。
word2003免费完整版win7
授权:免费软件 大小:48KB 语言: 简体
排行榜