poi 导出Excel 2003 和 2007 版本

packageutils;

importjava.io.OutputStream;

importorg.apache.poi.hssf.usermodel.HSSFCell;

importorg.apache.poi.hssf.usermodel.HSSFCellStyle;

importorg.apache.poi.hssf.usermodel.HSSFDataFormat;

importorg.apache.poi.hssf.usermodel.HSSFFont;

importorg.apache.poi.hssf.usermodel.HSSFRichTextString;

importorg.apache.poi.hssf.usermodel.HSSFRow;

importorg.apache.poi.hssf.usermodel.HSSFSheet;

importorg.apache.poi.hssf.usermodel.HSSFWorkbook;

importorg.apache.poi.ss.usermodel.Font;

importorg.apache.poi.xssf.usermodel.XSSFCell;

importorg.apache.poi.xssf.usermodel.XSSFCellStyle;

importorg.apache.poi.xssf.usermodel.XSSFDataFormat;

importorg.apache.poi.xssf.usermodel.XSSFFont;

importorg.apache.poi.xssf.usermodel.XSSFRichTextString;

importorg.apache.poi.xssf.usermodel.XSSFRow;

importorg.apache.poi.xssf.usermodel.XSSFSheet;

importorg.apache.poi.xssf.usermodel.XSSFWorkbook;

publicclassPoiExportExcel{

publicstaticvoidPoiWriteExcel_To2007(Stringtitle,String[][]head,String[][]body,OutputStreamos){

XSSFWorkbookxssf_w_book=newXSSFWorkbook();

XSSFSheetxssf_w_sheet=xssf_w_book.createSheet(title);

XSSFRowxssf_w_row=null;//创建一行

XSSFCellxssf_w_cell=null;//创建每个单元格

intcol_count=0;

introw_count=0;

row_count=body.length;

col_count=head.length;

XSSFCellStylehead_cellStyle=xssf_w_book.createCellStyle();//创建一个单元格样式

XSSFFonthead_font=xssf_w_book.createFont();

head_font.setFontName("宋体");//设置头部字体为宋体

head_font.setBoldweight(Font.BOLDWEIGHT_BOLD);//粗体

head_font.setFontHeightInPoints((short)12);

head_cellStyle.setFont(head_font);//单元格样式使用字体

inttitleRows=0;//标题占据的行数

xssf_w_row=xssf_w_sheet.createRow(0+titleRows);//第一行写入标题行

for(inti=0;i<col_count;i++){

xssf_w_cell=xssf_w_row.createCell((short)i);

Stringtype=head[i][2];

if(type==null){

type="";

}

elseif(type.equals("DATE")){

System.out.println("走格式化日期这步了");

XSSFDataFormathead_format=xssf_w_book.createDataFormat();

head_cellStyle.setDataFormat(head_format.getFormat("m/d/yy"));

xssf_w_cell.setCellType(XSSFCell.CELL_TYPE_STRING);

XSSFRichTextStringxssfString=newXSSFRichTextString(head[i][0]);

xssf_w_cell.setCellValue(xssfString);

xssf_w_cell.setCellStyle(head_cellStyle);

xssf_w_sheet.autoSizeColumn((short)i);

}else{

XSSFDataFormathead_format=xssf_w_book.createDataFormat();

head_cellStyle.setDataFormat(head_format.getFormat("@"));

xssf_w_cell.setCellType(XSSFCell.CELL_TYPE_STRING);

XSSFRichTextStringxssfString=newXSSFRichTextString(head[i][0]);

xssf_w_cell.setCellValue(xssfString);

xssf_w_cell.setCellStyle(head_cellStyle);

xssf_w_sheet.autoSizeColumn((short)i);

}

}

XSSFCellStylecellStyle_CN=xssf_w_book.createCellStyle();//创建数据单元格样式(数据库数据样式)

cellStyle_CN.setBorderBottom(XSSFCellStyle.BORDER_THIN);

cellStyle_CN.setBorderLeft(XSSFCellStyle.BORDER_THIN);

cellStyle_CN.setBorderRight(XSSFCellStyle.BORDER_THIN);

cellStyle_CN.setBorderTop(XSSFCellStyle.BORDER_THIN);

for(inti=1;i<=row_count;i++){

xssf_w_row=xssf_w_sheet.createRow(i+titleRows);

for(intj=0;j<col_count;j++){

Stringval=head[j][1];

xssf_w_cell=xssf_w_row.createCell((short)j);

if(val==null||val.trim().equals(""))

val="0";

Stringtype=head[j][2];

if(type==null)

type="";

//判断类型为数字类型

elseif(type.equals("NUM")){

xssf_w_cell.setCellType(XSSFCell.CELL_TYPE_STRING);

Stringvalue=body[i-1][Integer.parseInt(val)];

if(value==null||value.trim().equals(""))

value="0";

xssf_w_cell.setCellValue(Double.parseDouble(value));

}

//判断类型为日期类型

elseif(type.equals("DATE")){

xssf_w_cell.setCellType(XSSFCell.CELL_TYPE_STRING);//设置单元格为字符串类型

XSSFDataFormatformat=xssf_w_book.createDataFormat();

cellStyle_CN.setDataFormat(format.getFormat("yyyy/MM/dd"));

Stringvalue=body[i-1][Integer.parseInt(val)];

XSSFRichTextStringxssfString=newXSSFRichTextString(value);

xssf_w_cell.setCellStyle(cellStyle_CN);

xssf_w_cell.setCellValue(xssfString);

}else{

xssf_w_cell.setCellType(XSSFCell.CELL_TYPE_STRING);//设置单元格为字符串类型

Stringvalue=body[i-1][Integer.parseInt(val)];

if(value==null)

value="";

XSSFDataFormatformat=xssf_w_book.createDataFormat();

cellStyle_CN.setDataFormat(format.getFormat("@"));

xssf_w_cell.setCellStyle(cellStyle_CN);

XSSFRichTextStringxssfString=newXSSFRichTextString(value);

xssf_w_cell.setCellValue(xssfString);

}

}

}

try{

xssf_w_book.write(os);

os.flush();

os.close();

}

catch(Exceptione){

e.printStackTrace();

}

}

publicstaticvoidPoiWriteExcel_To2003(Stringtitle,String[][]head,String[][]body,OutputStreamos){

HSSFWorkbookhssf_w_wk=newHSSFWorkbook();//创建excel

HSSFSheethssf_w_s=hssf_w_wk.createSheet(title);//创建一个工作空间

HSSFRowhssf_w_r=null;//创建一行

HSSFCellhssf_w_c=null;//每个单元格

//填写内容

intcol_count=0;

introw_count=0;

row_count=body.length;

col_count=head.length;

HSSFCellStylecellStyle=hssf_w_wk.createCellStyle();

HSSFFontfont=hssf_w_wk.createFont();

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

font.setFontHeightInPoints((short)10);

font.setFontName("宋体");//设置标题字体

cellStyle.setFont(font);

//标题

inttitleRows=0;//标题占据的行数

hssf_w_r=hssf_w_s.createRow(0);

//第一行写入标题行

hssf_w_r=hssf_w_s.createRow(0+titleRows);

cellStyle=hssf_w_wk.createCellStyle();

cellStyle.setFont(font);//设置列标题样式

cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);

for(inti=0;i<col_count;i++){

hssf_w_c=hssf_w_r.createCell((short)i);

Stringtype=head[i][2];

System.out.println("类型为"+type);

if(type==null){

type="";

}

elseif(type.equals("DATE")){

HSSFDataFormatformat1=hssf_w_wk.createDataFormat();

cellStyle.setDataFormat(format1.getFormat("m/d/yy"));

hssf_w_c.setCellType(HSSFCell.CELL_TYPE_STRING);

HSSFRichTextStringhssfString=newHSSFRichTextString(head[i][0]);

hssf_w_c.setCellValue(hssfString);

hssf_w_c.setCellStyle(cellStyle);

hssf_w_s.autoSizeColumn((short)i);

}else{

HSSFDataFormatformat=hssf_w_wk.createDataFormat();

cellStyle.setDataFormat(format.getFormat("@"));

hssf_w_c.setCellType(HSSFCell.CELL_TYPE_STRING);

HSSFRichTextStringhssfString=newHSSFRichTextString(head[i][0]);

hssf_w_c.setCellValue(hssfString);

hssf_w_c.setCellStyle(cellStyle);

hssf_w_s.autoSizeColumn((short)i);

}

}

//第二行开始写入数据

cellStyle=hssf_w_wk.createCellStyle();

cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);

for(inti=1;i<=row_count;i++){

hssf_w_r=hssf_w_s.createRow(i+titleRows);

for(intj=0;j<col_count;j++){

Stringval=head[j][1];

hssf_w_c=hssf_w_r.createCell((short)j);

if(val==null||val.trim().equals(""))

val="0";

Stringtype=head[j][2];

if(type==null)

type="";

//判断类型为数字类型

elseif(type.equals("NUM")){

hssf_w_c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

Stringvalue=body[i-1][Integer.parseInt(val)];

if(value==null||value.trim().equals(""))

value="0";

hssf_w_c.setCellValue(Double.parseDouble(value));

}

//判断类型为日期类型

elseif(type.equals("DATE")){

HSSFDataFormatformat1=hssf_w_wk.createDataFormat();

cellStyle.setDataFormat(format1.getFormat("yyyy/m/d/"));

Stringvalue=body[i-1][Integer.parseInt(val)];

HSSFRichTextStringhssfString=newHSSFRichTextString(value);

hssf_w_c.setCellStyle(cellStyle);

hssf_w_c.setCellValue(hssfString);

}else{

hssf_w_c.setCellType(HSSFCell.CELL_TYPE_STRING);

Stringvalue=body[i-1][Integer.parseInt(val)];

if(value==null)

value="";

HSSFDataFormatformat2=hssf_w_wk.createDataFormat();

cellStyle.setDataFormat(format2.getFormat("@"));

hssf_w_c.setCellStyle(cellStyle);

HSSFRichTextStringhssfString=newHSSFRichTextString(value);

hssf_w_c.setCellValue(hssfString);

}

}

}

try{

hssf_w_wk.write(os);

os.flush();

os.close();

}

catch(Exceptione){

e.printStackTrace();

}

}

}

poi

相关推荐