從事程序員職業的朋友可能都會遇到類似情況,經常需要將一個表格導出成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("地址:");
新聞熱點
疑難解答