使用这套API操作Excel时,将对Excel进行全程锁定,所以不能有其他程序访问同一文件.
package poi;import java.io.FileOutputStream;import java.util.Calendar;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFDataFormat;import org.apache.poi.hssf.usermodel.HSSFFont;import org.apache.poi.hssf.usermodel.HSSFRichTextString;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;public class App {
public static void main(String[] args) {
try {FileOutputStream fos = new FileOutputStream("d:/poi.xls");
// 建立工作空间 HSSFWorkbook wb = new HSSFWorkbook(); // 创建工作表 HSSFSheet sheet = wb.createSheet("first Sheet"); wb.createSheet("second Sheet"); // 创建行HSSFRow row = sheet.createRow(0);
// 创建单元格HSSFCell cell = row.createCell(0);
// 设置不同的值进行比较 cell.setCellValue(true);// boolean row.createCell(1).setCellValue(Calendar.getInstance());// 日历类型row.createCell(2).setCellValue(new Date());// date类型
row.createCell(3).setCellValue(123456789.987654321);// double String str = "sadfasdfsadfsadfsdddddddddddffffffffffffffffdsadf";row.createCell(4).setCellValue(new HSSFRichTextString(str));// String
// 格式化单元格数据 HSSFCellStyle style = wb.createCellStyle();// 创建样式对象 HSSFDataFormat format = wb.createDataFormat();// 创建数据格式对象 style.setDataFormat(format.getFormat("yyyy-MM-dd hh:mm:ss"));row.getCell(1).setCellStyle(style);
row.getCell(2).setCellStyle(style);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("#,###.0000"));row.getCell(3).setCellStyle(style);
// 设置列宽,单位int:是点的1/20sheet.setColumnWidth(1, 5000);
sheet.autoSizeColumn((short) 2);// 自动列宽
sheet.autoSizeColumn((short) 4); // 设置文本的对齐方式row = sheet.createRow(1);
row.createCell(0).setCellValue(new HSSFRichTextString("左上"));
row.createCell(1).setCellValue(new HSSFRichTextString("中中"));
row.createCell(2).setCellValue(new HSSFRichTextString("右下"));
// #左上style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 水平左 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 水平左row.getCell(0).setCellStyle(style);
// #中中style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
row.getCell(1).setCellStyle(style);
// #左上style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_BOTTOM);
row.getCell(2).setCellStyle(style);
// 行高 row.setHeight((short) 2000); // 字体颜色和大小HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short) 30);// 字体高度
font.setItalic(true);// 斜体 font.setColor(HSSFColor.RED.index);// 字体颜色style = row.getCell(0).getCellStyle();
style.setFont(font);// 为单元格样式应用字体 sheet.setColumnWidth(0, (short) 5000); // 设置旋转 style.setRotation((short) 60); // 设置边框样式row = sheet.createRow(2);
cell = row.createCell(0);
style = wb.createCellStyle();
style.setTopBorderColor(HSSFColor.RED.index);// 上边框style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT);
cell.setCellStyle(style);
// 计算列row = sheet.createRow(3);
row.createCell(0).setCellValue(12);
row.createCell(1).setCellValue(13);
row.createCell(2).setCellValue(14);
cell = row.createCell(3);
cell.setCellFormula("average(A4:C4)");row = sheet.createRow(4);
row.createCell(0).setCellValue(22);
row.createCell(1).setCellValue(23);
row.createCell(2).setCellValue(24);
cell = row.createCell(3);
cell.setCellFormula("sum(A4:C5)"); // 整体移动行 // sheet.shiftRows(2, 4, -1); // 拆分窗格 // 1000:x轴拆分距离 2000:y轴拆分距离 // 1:右侧窗格开始显示的列的索引数 2:下策窗口开始显示的行的索引的数 // 2:哪个面板去激活 // sheet.createSplitPane(1000, 2000, 1, 2, 2); // 冻结窗格 // 1:冻结的列数 2:冻结行数 3:右侧窗格从第几列开始显示 4:下侧窗格从第几行开始显示 // sheet.createFreezePane(1, 2, 3, 4);wb.write(fos);
fos.close();
} catch (Exception e) {e.printStackTrace();
}
}
}
