itext生成word文档使用笔记
private static void CreateWord()
{
String filePath="D:\\fjs\\oil1out";
String filePath2="D:\\fjs\\oil2out";
BufferedReader br;
BufferedReader br2;
//定义A4页面大小
Rectangle rectPageSize = new Rectangle(PageSize.A4);
rectPageSize = rectPageSize.rotate();
// 创建word文档,并设置纸张的大小
Document document = new Document(rectPageSize,80, 80, 50,50); //建立文档
try {
//try start
br = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath)));
br2 = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath2)));
RtfWriter2.getInstance(document,new FileOutputStream("E:/word121.doc")); //创建一个书写器
document.open();
for(int rainTypeCount=0;rainTypeCount<4;rainTypeCount++)
{
//读取下雨类型
String rainType=rainType(br.readLine());
br2.readLine();
for(int realseTypeCount=0;realseTypeCount<8;realseTypeCount++)
{
//生成=======大雨,PWR4
Paragraph p = new Paragraph(rainType+","+realseType(br.readLine()), new Font(Font.NORMAL, 18, Font.BOLD, new Color(0, 9, 9)) );
br2.readLine();
p.setAlignment(1);
document.add(p);
Table table = new Table(14); //14列
table.setWidth(Float.parseFloat("100"));
table.setAlignment(Element.ALIGN_CENTER);
table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示
table.setBorderWidth(1);
table.setBorderColor(Color.BLACK);
table.setPadding(0);
table.setSpacing(0);
// * 添加表头
Cell cell = new Cell("稳定度");// 单元格
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(10);
cell.setRowspan(2);// 设置表格为2行
table.addCell(cell);
cell = new Cell("风速级(m/s)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setRowspan(2);// 设置表格为2行
table.addCell(cell);
cell = new Cell("下风向距离上的OIL1(mSv/h)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setColspan(6);// 设置表格为6列
table.addCell(cell);
cell = new Cell("下风向距离上的OIL2(mSv/h)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setColspan(6);// 设置表格为6列
table.addCell(cell);
for(int i=0;i<2;i++)
{
cell=new Cell("1km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("2km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("3.33km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("5km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("6.67km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("10km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
}
table.endHeaders();// 表头结束
// 表格的主体
br.readLine(); //距离
br.readLine(); //稳定度 风速 1.00 2.00 3.33 5.00 6.67 10.00
br2.readLine(); //距离
br2.readLine(); //稳定度 风速 1.00 2.00 3.33 5.00 6.67 10.00
for(int i=0;i<6;i++)
{
for(int j=0;j<9;j++)
{
String row=br.readLine(); //A 1.0 0.17 0.21 0.21 0.20 0.18 0.15
String row2= br2.readLine();
if(j==0)
{
cell = new Cell(row.substring(0, 1)); //A
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(9);// 当前单元格占两行,纵向跨度
table.addCell(cell);
}
cell = new Cell(windSpeed(j)); //A
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
for(int m =0;m<6;m++)
{
cell=new Cell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
//table.addCell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
}
for(int n =0;n<6;n++)
{
cell=new Cell(row.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// table.addCell(row2.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
}
}
}
document.add(table);
}
}
br.close();
br2.close();
document.close();
System.out.println("文档已生成!");
//try end
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
{
String filePath="D:\\fjs\\oil1out";
String filePath2="D:\\fjs\\oil2out";
BufferedReader br;
BufferedReader br2;
//定义A4页面大小
Rectangle rectPageSize = new Rectangle(PageSize.A4);
rectPageSize = rectPageSize.rotate();
// 创建word文档,并设置纸张的大小
Document document = new Document(rectPageSize,80, 80, 50,50); //建立文档
try {
//try start
br = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath)));
br2 = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath2)));
RtfWriter2.getInstance(document,new FileOutputStream("E:/word121.doc")); //创建一个书写器
document.open();
for(int rainTypeCount=0;rainTypeCount<4;rainTypeCount++)
{
//读取下雨类型
String rainType=rainType(br.readLine());
br2.readLine();
for(int realseTypeCount=0;realseTypeCount<8;realseTypeCount++)
{
//生成=======大雨,PWR4
Paragraph p = new Paragraph(rainType+","+realseType(br.readLine()), new Font(Font.NORMAL, 18, Font.BOLD, new Color(0, 9, 9)) );
br2.readLine();
p.setAlignment(1);
document.add(p);
Table table = new Table(14); //14列
table.setWidth(Float.parseFloat("100"));
table.setAlignment(Element.ALIGN_CENTER);
table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示
table.setBorderWidth(1);
table.setBorderColor(Color.BLACK);
table.setPadding(0);
table.setSpacing(0);
// * 添加表头
Cell cell = new Cell("稳定度");// 单元格
cell.setHeader(true);
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(10);
cell.setRowspan(2);// 设置表格为2行
table.addCell(cell);
cell = new Cell("风速级(m/s)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setRowspan(2);// 设置表格为2行
table.addCell(cell);
cell = new Cell("下风向距离上的OIL1(mSv/h)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setColspan(6);// 设置表格为6列
table.addCell(cell);
cell = new Cell("下风向距离上的OIL2(mSv/h)");// 单元格
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setHeader(true);
cell.setColspan(6);// 设置表格为6列
table.addCell(cell);
for(int i=0;i<2;i++)
{
cell=new Cell("1km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("2km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("3.33km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("5km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("6.67km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell=new Cell("10km");
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
}
table.endHeaders();// 表头结束
// 表格的主体
br.readLine(); //距离
br.readLine(); //稳定度 风速 1.00 2.00 3.33 5.00 6.67 10.00
br2.readLine(); //距离
br2.readLine(); //稳定度 风速 1.00 2.00 3.33 5.00 6.67 10.00
for(int i=0;i<6;i++)
{
for(int j=0;j<9;j++)
{
String row=br.readLine(); //A 1.0 0.17 0.21 0.21 0.20 0.18 0.15
String row2= br2.readLine();
if(j==0)
{
cell = new Cell(row.substring(0, 1)); //A
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setRowspan(9);// 当前单元格占两行,纵向跨度
table.addCell(cell);
}
cell = new Cell(windSpeed(j)); //A
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
for(int m =0;m<6;m++)
{
cell=new Cell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
//table.addCell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
}
for(int n =0;n<6;n++)
{
cell=new Cell(row.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
cell.setVerticalAlignment(Element.ALIGN_CENTER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
// table.addCell(row2.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
}
}
}
document.add(table);
}
}
br.close();
br2.close();
document.close();
System.out.println("文档已生成!");
//try end
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}