<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