java导出excel

来源:互联网 发布:淘宝儿童服装店哪个好 编辑:程序博客网 时间:2024/05/16 04:38
package com.oracle.Test_Excel;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;


public class Test_1 {
public static void main(String[] args) throws FileNotFoundException {
String filename = "first.xls";
FileOutputStream fos = new FileOutputStream(new File(filename)); // 创建输出流


HSSFWorkbook hw = new HSSFWorkbook(); // 创建表格对象


HSSFCellStyle style = hw.createCellStyle(); // 设置居中
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFCellStyle style1 = hw.createCellStyle();
style1.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);


HSSFFont font = hw.createFont(); // 设置字体
font.setFontName("黑体");
font.setFontHeightInPoints((short) 16);
style.setFont(font);


HSSFSheet sheet = hw.createSheet("910826"); // 创建工作表


sheet.setColumnWidth(1, 8000); // 设置列宽
sheet.setColumnWidth(0, 1000);
sheet.setColumnWidth(2, 2000);
sheet.setColumnWidth(3, 2000);
sheet.setColumnWidth(4, 4500);
sheet.setColumnWidth(5, 4500);
sheet.setColumnWidth(6, 4500);
sheet.setColumnWidth(7, 4500);
sheet.setColumnWidth(8, 4500);
sheet.setColumnWidth(9, 4500);
sheet.setColumnWidth(10, 9000);
sheet.setColumnWidth(11, 4500);
sheet.setColumnWidth(12, 4500);


sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 10)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(3, 5, 1, 1)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(3, 5, 0, 0)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(3, 5, 2, 2)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(6, 8, 2, 2)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(6, 8, 0, 0)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(6, 8, 1, 1)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(9, 11, 0, 0)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(9, 11, 1, 1)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(9, 11, 2, 2)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(12, 14, 0, 0)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(12, 14, 1, 1)); // 合并单元格
sheet.addMergedRegion(new CellRangeAddress(12, 14, 2, 2)); // 合并单元格


sheet.addMergedRegion(new CellRangeAddress(3, 14, 10, 10)); // 合并单元格


HSSFRow row = sheet.createRow(0); // 创建第0行


HSSFCell cell = row.createCell(1);
cell.setCellStyle(style);
cell.setCellValue("中华电信电路容量及使用现况月调报表");


row = sheet.createRow(1); // 创建第1行
style = hw.createCellStyle();
;
font = hw.createFont(); // 设置字体
font.setFontName("黑体");
font.setFontHeightInPoints((short) 9);
style.setFont(font);
row.createCell(10);
cell = row.getCell(10);
cell.setCellStyle(style);
cell.setCellValue("填表日期:91年08月26日");


row = sheet.createRow(2); // 创建第2行
row.setHeight((short) 750);
style = hw.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setWrapText(true);// 设置自动换行
font = hw.createFont(); // 设置字体
font.setFontHeightInPoints((short) 12);
style.setFont(font);
style.setBorderTop(HSSFCellStyle.BORDER_THIN); // 上边框
style.setBorderTop(HSSFCellStyle.BORDER_THICK);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
row.createCell(1);
cell = row.getCell(1);
cell.setCellStyle(style);
cell.setCellValue("项目");


row.createCell(2);
cell = row.getCell(2);
cell.setCellStyle(style);
cell.setCellValue("单位"); // 创建第2行


row.createCell(3);
cell = row.getCell(3);
cell.setCellStyle(style);
cell.setCellValue("分公司");


row.createCell(4);
cell = row.getCell(4);
cell.setCellStyle(style);
cell.setCellValue("至90年12月累计数");


row.createCell(5);
cell = row.getCell(5);
cell.setCellStyle(style);
cell.setCellValue("91年预定建设数");


row.createCell(6);
cell = row.getCell(6);
cell.setCellStyle(style);
cell.setCellValue("建设执行现况(%)");


row.createCell(7);
cell = row.getCell(7);
cell.setCellStyle(style);
cell.setCellValue("91年当月累计设计数量");


row.createCell(8);
cell = row.getCell(8);
cell.setCellStyle(style);
cell.setCellValue("当月累计使用数量");


row.createCell(9);
cell = row.getCell(9);
cell.setCellStyle(style);
cell.setCellValue("使用率%");


row.createCell(10);
cell = row.getCell(10);
cell.setCellStyle(style);
cell.setCellValue("存储");


row.createCell(11);
cell = row.getCell(11);
cell.setCellStyle(style);
cell.setCellValue("91年实际累计设计数量");


row.createCell(12);
cell = row.getCell(12);
cell.setCellStyle(style);
cell.setCellValue("累计增幅");


ArrayList<String> list = new ArrayList<String>(); // 将数据加入List中
list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("北分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("中分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("北分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("市话交换机门号数(POTS)");
list.add("门");
list.add("中分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


list.add("ISDN E1-PRA");
list.add("门");
list.add("南分");
list.add("8,253,465");
list.add("1,137,000");
list.add("21.84%");
list.add("8,463,465");
list.add("6,723,991");
list.add("79.45%");
list.add("固网(资料取得截止日期91/07/31)");
list.add("248,300");
list.add("91,300");


style = hw.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);


for (int j = 3; j < 15; j++) {
row = sheet.createRow(j); // 创建第j行
row.createCell(0);
cell = row.getCell(0);
cell.setCellStyle(style);
cell.setCellValue(j / 3);


for (int i = 1; i < 13; i++) {
row.createCell(i);
cell = row.getCell(i);
if (j % 3 == 0&&i!=10&&i!=1&&i!=2) {
cell.setCellStyle(style1);
} else {
cell.setCellStyle(style);
}
cell.setCellValue(list.get((i - 1) + (j - 3) * 12));


}
}


try {
hw.write(fos);
hw.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}


}


}
0 0
原创粉丝点击