//autoSizeColumn()方法自動調整excel列寬
importjava.io.FileOutputStream;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFCellStyle;
importorg.apache.poi.hssf.usermodel.HSSFFont;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.hssf.usermodel.HSSFRichTextString;
importorg.apache.poi.hssf.usermodel.HSSFDataFormat;
importorg.apache.poi.hssf.usermodel.HSSFComment;
importorg.apache.poi.hssf.usermodel.HSSFPatriarch;
importorg.apache.poi.hssf.usermodel.HSSFClientAnchor;
publicclassPoiCreateExcelTest {
publicstaticvoidmain(String[] args) {
//創建新的Excel 工作簿
HSSFWorkbook workbook =newHSSFWorkbook();
//在Excel工作簿中建一工作表,其名為缺省值, 也可以指定Sheet名稱
HSSFSheet sheet =workbook.createSheet();
//HSSFSheet sheet = workbook.createSheet("SheetName");
//用於格式化單元格的數據
HSSFDataFormat format =workbook.createDataFormat();
//創建新行(row),並將單元格(cell)放入其中. 行號從0開始計算.
HSSFRow row =sheet.createRow((short) 1);
//設置字體
HSSFFont font =workbook.createFont();
font.setFontHeightInPoints((short) 20); //字體高度
font.setColor(HSSFFont.COLOR_RED); //字體顏色
font.setFontName("黑體"); //字體
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //寬度
font.setItalic(true); //是否使用斜體
// font.setStrikeout(true); //是否使用划線
//設置單元格類型
HSSFCellStyle cellStyle =workbook.createCellStyle();
cellStyle.setFont(font);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
cellStyle.setWrapText(true);
//添加單元格注釋
//創建HSSFPatriarch對象,HSSFPatriarch是所有注釋的容器.
HSSFPatriarch patr =sheet.createDrawingPatriarch();
//定義注釋的大小和位置,詳見文檔
HSSFComment comment =patr.createComment(newHSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short) 6, 5));
//設置注釋內容
comment.setString(newHSSFRichTextString("可以在POI中添加注釋!"));
//設置注釋作者. 當鼠標移動到單元格上是可以在狀態欄中看到該內容.
comment.setAuthor("Xuys.");
//創建單元格
HSSFCell cell =row.createCell((short) 1);
HSSFRichTextString hssfString =newHSSFRichTextString("Hello World!");
cell.setCellValue(hssfString);//設置單元格內容
cell.setCellStyle(cellStyle);//設置單元格樣式
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//指定單元格格式:數值、公式或字符串
cell.setCellComment(comment);//添加注釋
//格式化數據
row =sheet.createRow((short) 2);
cell =row.createCell((short) 2);
cell.setCellValue(11111.25);
cellStyle =workbook.createCellStyle();
cellStyle.setDataFormat(format.getFormat("0.0"));
cell.setCellStyle(cellStyle);
row =sheet.createRow((short) 3);
cell =row.createCell((short) 3);
cell.setCellValue(9736279.073);
cellStyle =workbook.createCellStyle();
cellStyle.setDataFormat(format.getFormat("#,##0.0000"));
cell.setCellStyle(cellStyle);
sheet.autoSizeColumn((short)0); //調整第一列寬度
sheet.autoSizeColumn((short)1); //調整第二列寬度
sheet.autoSizeColumn((short)2); //調整第三列寬度
sheet.autoSizeColumn((short)3); //調整第四列寬度
try{
FileOutputStream fileOut =newFileOutputStream("C:\3.xls");
workbook.write(fileOut);
fileOut.close();
}catch(Exception e) {
System.out.println(e.toString());
}
}
}
