<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>html
组件 | 组件类型 |
HSSF | Microsoft Excel XLS格式档案 |
XSSF | Microsoft Excel OOXML XLSX格式档案 |
HWPF | Microsoft Word DOC格式档案 |
HSLF | Microsoft PowerPoint格式档案 |
HDGF | Microsoft Visio格式档案 |
HPBF | Microsoft Publisher格式档案 |
HSMF | Microsoft Outlook格式档案 |
代码apache
public static void hssfDemo1() throws Exception{ //1.建立一个文档对象HSSFWorkbook (一个excel文档就对应一个HSSFWorkbook实例), 有两种建立方式 //方式一
HSSFWorkbook wb = new HSSFWorkbook(); //方式二 // HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //2.咱们都知道excel文档里面对应了sheet(能够有多个sheet),因此第二个步骤就是生成sheet对象
HSSFSheet sheet1 = wb.createSheet("sheet1"); //"sheet1"未对应的sheet的名称 //3.sheet里面的内容都是一行一行的格子组成,因此须要建立“行对象”
HSSFRow row0 = sheet1.createRow(0); //建立第一行,"0"为行号的下标 //4.生成列
HSSFCell cell0 = row0.createCell(0); //生成第一行的第一列
HSSFCell cell1 = row0.createCell(1); //生成第一行的第二列
HSSFCell cell2 = row0.createCell(2); //生成第一行的第三列
HSSFCell cell3 = row0.createCell(3); //生成第一行的第四列 //5.给列进行赋值
cell0.setCellValue("姓名"); cell1.setCellValue("年龄"); cell2.setCellValue("地址"); cell3.setCellValue("电话"); //6.输出excel文件
FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls"); wb.write(fileOut); }
生成文件结果微信
public static void hssfDemo2() throws Exception{ //建立文档对象HSSFWorkbook
HSSFWorkbook wb = HSSFWorkbookFactory.createWorkbook(); //建立sheet
HSSFSheet sheet1 = wb.createSheet("我是sheet1"); HSSFSheet sheet2 = wb.createSheet("我是sheet2"); //因为此方式建立行和列须要很大的代码量,咱们能够采用循环的方式进行构建
/* //建立sheet1里面的行 HSSFRow row0 = sheet1.createRow(0); // 建立第一行,"0"为行号的下标 HSSFRow row1 = sheet1.createRow(1); // 建立第一行,"0"为行号的下标 HSSFRow row2 = sheet1.createRow(2); // 建立第一行,"0"为行号的下标 // 4.生成列 HSSFCell cell0 = row0.createCell(0); // 生成第一行的第一列 HSSFCell cell1 = row0.createCell(1); // 生成第一行的第二列 HSSFCell cell2 = row0.createCell(2); //生成第一行的第三列 HSSFCell cell3 = row0.createCell(3); //生成第一行的第四列 */
//for循环方式进行构建"行和列" //分别给sheet1和sheet2构建10行
for(int i = 0; i < 10; i++){ //生成10行
HSSFRow a = sheet1.createRow(i); //sheet1的行
HSSFRow b = sheet2.createRow(i); //sheet2的行
} //给行设置标题
HSSFRow row0OnSheet1 = sheet1.getRow(0); HSSFRow row1OnSheet1 = sheet1.getRow(1); row0OnSheet1.createCell(0).setCellValue("姓名"); row0OnSheet1.createCell(1).setCellValue("年龄"); row0OnSheet1.createCell(2).setCellValue("联系方式"); row0OnSheet1.createCell(3); row0OnSheet1.createCell(4); row1OnSheet1.createCell(2).setCellValue("QQ"); row1OnSheet1.createCell(3).setCellValue("微信"); row1OnSheet1.createCell(4).setCellValue("手机"); //合并单元格 //上下单元格合并操做 (将"姓名"、"年龄"两列每一个单元格上下合并)
sheet1.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); //将第一列的“第一行与第二行”合并 参数说明:(0, 1, 0, 0) -->(第一行下标, 第二行下标, 第一列, 第一列下标)
sheet1.addMergedRegion(new CellRangeAddress(0, 1, 1, 1)); //左右单元格合并 (将第一行的三个单元格(下标为2 3 4)合并成一个单元格,"联系方式")
sheet1.addMergedRegion(new CellRangeAddress(0, 0, 2, 4)); //设置样式 //建立字体样式
HSSFFont font = wb.createFont(); font.setBold(true); //加粗
font.setColor((short)50); //设置字体颜色
font.setFontHeightInPoints((short) 12); //字体大小 //构建列的样式
HSSFCellStyle cs = wb.createCellStyle(); cs.setFont(font); //列的字体
cs.setAlignment(HorizontalAlignment.CENTER); //水平居中对齐
cs.setVerticalAlignment(VerticalAlignment.CENTER); //垂直居中对齐 //给excel列加上样式
for(int i = 0; i < 10; i++){ sheet1.setColumnWidth(i, 20 * 256); HSSFCell cell = row0OnSheet1.getCell(i); HSSFCell cell1 = row1OnSheet1.getCell(i); if(cell != null){ cell.setCellStyle(cs); } if(cell1 != null){ cell1.setCellStyle(cs); } } //输出excel文件
FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls"); wb.write(fileOut); }
生成文件结果maven
本文地址:http://www.javashuo.com/article/p-mpxxvund-cv.html字体
若是你有更简介的方式欢迎留言 !谢谢spa