需要的jar包
iText-2.0.8.jar,itextasian-1.5.2.jar(语言包)
java代码
public void exportWord(String sheetName, String[] headers,String[] columns,JSONArray array, OutputStream out){
try {
//设置纸张大小
Document document = new Document(PageSize.A4);
//建立一个书写器,与document对象关联
RtfWriter2.getInstance(document,out);
document.open();
//设置中文字体
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
//标题字体风格
Font titleFont = new Font(bfChinese,12,Font.BOLD);
//正文字体风格
//Font contextFont = new Font(bfChinese,10,Font.NORMAL);
Paragraph context = new Paragraph(sheetName);
context.setAlignment(Element.ALIGN_CENTER);
context.setFont(titleFont);
//段间距
context.setSpacingBefore(3);
//设置第一行空的列数
context.setFirstLineIndent(20);
document.add(context);
//设置Table表格,创建表格
Table table = new Table(headers.length);
table.setWidth(90);//占页面宽度比例
table.setAlignment(Element.ALIGN_CENTER);//居中
table.setAlignment(Element.ALIGN_MIDDLE);//垂直居中
table.setAutoFillEmptyCells(true);//自动填满
table.setBorderWidth(1);//边框宽度
//设置表头
for(String header : headers){
Cell haderCell = new Cell(header);
haderCell.setHeader(true);
table.addCell(haderCell);
}
table.endHeaders();
for(int i=0;i<array.size();i++){
JSONObject obj = array.getJSONObject(i);
for(int j=0;j<columns.length;j++){
Object o = obj.get(columns[j]);
String value=null;
if(o == null || o instanceof JSONNull){
value="";
}
else if(o instanceof JSONObject){
JSONObject jsonobj = (JSONObject)o;
Date d = (Date)JSONObject.toBean(jsonobj, Date.class);
value = DateFormatUtils.format(d, "yyyy-MM-dd hh:mm:ss");
}else{
value = obj.getString(columns[j]);
}
table.addCell(new Cell(value));
}
}
document.add(table);
document.close();
}catch(Exception e){
e.printStackTrace();
}
}