首页 > 代码库 > java 操作excel文档 使用poi

java 操作excel文档 使用poi

简答你的使用  方便以后使用到时查看

  1 package kite.poi;
  2 
  3 import java.awt.Font;
  4 import java.io.File;
  5 import java.io.FileOutputStream;
  6 import java.util.Calendar;
  7 import java.util.Date;
  8 
  9 import org.apache.poi.hssf.usermodel.HSSFCell;
 10 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 11 import org.apache.poi.hssf.usermodel.HSSFDataFormat;
 12 import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
 13 import org.apache.poi.hssf.usermodel.HSSFFont;
 14 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
 15 import org.apache.poi.hssf.usermodel.HSSFRow;
 16 import org.apache.poi.hssf.usermodel.HSSFSheet;
 17 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 18 import org.apache.poi.hssf.util.HSSFColor;
 19 import org.apache.poi.ss.usermodel.Cell;
 20 import org.apache.poi.ss.usermodel.RichTextString;
 21 
 22 public class App
 23 {
 24     public static void main(String[] args) throws Exception
 25     {
 26         //创建工作簿
 27         HSSFWorkbook wb = new HSSFWorkbook();
 28         //创建一页
 29         HSSFSheet sheet = wb.createSheet("first sheet");
 30         //创建一行
 31         HSSFRow row = sheet.createRow(0);
 32         //创建列
 33         HSSFCell cell = row.createCell(0);
 34         cell.setCellValue(false);
 35         row.createCell(1).setCellValue(Calendar.getInstance());//日历
 36         row.createCell(2).setCellValue(new Date());
 37         row.createCell(3).setCellValue(123456789.987654321f);
 38         
 39         RichTextString rt = new HSSFRichTextString("dasssssssssssssssssssssssssssssssssssssssssss" +
 40                 "dasssssssssssssssssssssssssssssssssssssssssssss");//富有文本
 41         row.createCell(4).setCellValue(rt);
 42         row.createCell(5).setCellValue("收入多少啊");
 43         
 44         
 45         //格式化数据
 46         HSSFDataFormat format = wb.createDataFormat();//创建格式化对象
 47         HSSFCellStyle style = wb.createCellStyle();//创建单元格样式
 48         
 49         //设置格式
 50         style.setDataFormat(format.getFormat("yyyy-MM-dd hh:mm:ss"));
 51         cell = row.getCell(1);//对日历进行格式化
 52         cell.setCellStyle(style);
 53         //设置列宽
 54         sheet.setColumnWidth(1, 5000);//单位:1/20
 55         sheet.autoSizeColumn(2);
 56         
 57         //数字格式化
 58         style = wb.createCellStyle();
 59         style.setDataFormat(format.getFormat("#,####.000"));
 60         row.getCell(3).setCellStyle(style);
 61         
 62         //文本自动换行
 63         sheet.setColumnWidth(4, 5000);
 64         style = wb.createCellStyle();
 65         style.setWrapText(true);//回绕文本
 66         row.getCell(4).setCellStyle(style);//设置样式到 富文本
 67         
 68         //设置文本对齐方式
 69         sheet.setColumnWidth(0 , 5000);
 70         row = sheet.createRow(1);
 71         row.createCell(0).setCellValue("左上");
 72         row.createCell(1).setCellValue("中中");
 73         row.createCell(2).setCellValue("右下");
 74         
 75         //对齐方式 --左上
 76         style = wb.createCellStyle();
 77         style.setAlignment(HSSFCellStyle.ALIGN_LEFT);//左对齐
 78         style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);//上对齐
 79         row.getCell(0).setCellStyle(style);
 80         
 81         //对齐方式--中中
 82         style = wb.createCellStyle();
 83         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
 84         style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
 85         row.getCell(1).setCellStyle(style);
 86         
 87         //对齐方式--右下
 88         style = wb.createCellStyle();
 89         style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
 90         style.setVerticalAlignment(HSSFCellStyle.VERTICAL_BOTTOM);
 91         row.getCell(2).setCellStyle(style);
 92         
 93         //设置行高      像素
 94         row.setHeightInPoints(50);
 95         
 96         //设置字体
 97         style = row.getCell(1).getCellStyle();  //对当前行的第一列设置样式
 98         HSSFFont font = wb.createFont();
 99         font.setColor(HSSFColor.RED.index);
100         font.setFontName("宋体");
101         font.setFontHeightInPoints((short)18);
102         style.setFont(font);
103         
104         //文本旋转
105         style.setRotation((short)30);
106         
107         //设置边框
108         row = sheet.createRow(2);
109         cell = row.createCell(0);
110         style = wb.createCellStyle();
111         style.setBorderBottom(HSSFCellStyle.BORDER_DASH_DOT_DOT);
112         style.setTopBorderColor(HSSFColor.RED.index);
113         cell.setCellStyle(style);
114         
115         //计算列
116         row = sheet.createRow(3);
117         row.createCell(0).setCellValue(11.5f);
118         row.createCell(1).setCellValue(25.6f);
119         row.createCell(2).setCellValue(50);
120         row.createCell(3).setCellFormula("sum(A4:C4)");
121         
122         //整体移动行
123         sheet.shiftRows(1, 3, 2);
124         
125         //拆分窗格
126         //1000:左侧窗格的宽度
127         //2000:上侧窗格的高度
128         //3:右侧窗格开始显示的列的索引
129         //4:下侧窗格开始显示的行的索引
130         //1:激活的哪个面板区
131         sheet.createSplitPane(1000, 2000, 3, 4, 1);
132         
133         //冻结窗口
134         sheet.createFreezePane(1, 2, 3, 4);
135         
136         wb.write(new FileOutputStream(new File("F:\\excel.xls")));
137         
138     }
139 }