Rectangle rectPageSize = new Rectangle(PageSize.A4);
// 创建word文档,并设置纸张的大小
Document document = new Document(rectPageSize);
try {
// 文件名称
String fileName = new String("党支部会议通知".getBytes(), "ISO-8859-1")
+ ".doc";
getResponse().setContentType("application/msexcel");
getResponse().addHeader("Content-Disposition",
"attachment; filename=" + fileName);
OutputStream out = getResponse().getOutputStream();
// 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中
RtfWriter2.getInstance(document, out);
document.open();
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);
// 创建有四列的表格
Table table = new Table(4);
// 每列所占比例
int width[] = { 20, 30, 20, 30 };
table.setLocked(true);
// 设置每列所占比例
table.setWidths(width);
// 占页面宽度 90%
table.setWidth(90);
// 居中显示
table.setAlignment(Element.ALIGN_CENTER);
// 纵向居中显示
table.setAlignment(Element.ALIGN_MIDDLE);
// 自动填满
table.setAutoFillEmptyCells(true);
// 衬距
table.setPadding(0);
// 即单元格之间的间距
table.setSpacing(0);
// 边框
table.setBorder(1);
table.setBorderWidth(1);
// 设置中文字体
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
// 列名称字体
Font fontChinese = new Font(bfChinese, 12, Font.BOLD);
// 添加表头的元素
Cell cell = new Cell();// 单元格
/*
* cell.setHorizontalAlignment(Element.ALIGN_CENTER);
*
* cell.setHeader(true);
*
* cell.setColspan(4);// 设置表格为四列
*
* cell.setRowspan(2);// 设置表格为2行
*
* table.addCell(cell);
*
* table.endHeaders();// 表头结束
*/
// 第一行 第一列 标题
cell = new Cell(new Phrase("支部名称", fontChinese));
// 文字水平居中显示
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第一行 第二列 内容
cell = new Cell(new Paragraph("集团本部直属"));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第一行 第三列 标题
cell = new Cell(new Phrase("主持人:", fontChinese));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第一行 第四列 标题
cell = new Cell("孟非");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第二行 第一列 标题
cell = new Cell(new Phrase("时间:", fontChinese));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第二行 第二列
cell = new Cell(new Paragraph("星期一"));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第二行 第三列
cell = new Cell(new Phrase("地点:", fontChinese));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第二行 第四列
cell = new Cell("人民大会堂");
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第三行 第一例
cell = new Cell(new Phrase("参加人员出勤情况", fontChinese));
// 占两行 注意 itext是无法设置行高的 所以当表格需要占据一页时 需要通过合并行 来手动控制表格行高度
cell.setRowspan(2);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第三行 第二例 占三列
cell = new Cell(new Paragraph("党支部委员:应到 10 人,实到 10 人,缺席 0 人 "));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占两行
cell.setRowspan(2);
// 占三列
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第四行 第一列
cell = new Cell(new Phrase("会议议题:", fontChinese));
// 垂直居中
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行 为了控制改行高度 合并14行
cell.setRowspan(14);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph("社会主义社会的和谐发展"));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行
cell.setRowspan(14);
// 占三列
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第五行
cell = new Cell(new Phrase("主要内容:", fontChinese));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行
cell.setRowspan(14);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph("每位参会者提出自己的建议,做相应报告"));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行
cell.setRowspan(14);
// 占三列
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第六行
cell = new Cell(new Phrase("支部决议:", fontChinese));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行
cell.setRowspan(14);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 当表格行内文字 增多时 表格行会自动增宽
String str = "任命 郭德纲 同学 ";
cell = new Cell(new Paragraph(str));
cell.setUseAscender(true);
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE);
// 占14行
cell.setRowspan(14);
// 占三列
cell.setColspan(3);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// 第七行
cell = new Cell(new Phrase("记录人:", fontChinese));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph());
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Phrase("党支部书记签字:", fontChinese));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell();
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
document.add(table);
document.add(new Paragraph("\n"));
document.close();
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}