publicclass WriterExcel ...{ /** *//** * @param args */ @SuppressWarnings("deprecation") publicstaticvoid main(String[] args) ...{ HSSFWorkbook wb =new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. HSSFRow row = sheet.createRow((short)0); // Create a cell and put a value in it. HSSFCell cell1 = row.createCell((short)0); cell1.setCellValue(1); // Or do it on one line. row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("This is a string"); row.createCell((short)3).setCellValue(true); /** *//** * Creating Date Cells */ // Create a cell and put a date value in it. The first cell is not styled // as a date. row.createCell((short)4).setCellValue(new Date()); // we style the second cell as a date (and time). It is important to // create a new cell style from the workbook otherwise you can end up // modifying the built in style and effecting not only this cell but other cells. HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm")); cell1 = row.createCell((short)5); cell1.setCellValue(new Date()); cell1.setCellStyle(cellStyle); /** *//** * Demonstrates various alignment options */ row = sheet.createRow((short)6 ); createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER); createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION); createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL); createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL); createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY); createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT); createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT); /** *//** * create a 9*9 table */ //method one sheet = wb.createSheet("9-9 v1"); for(short y=8;0<=y;y--)...{ row = sheet.createRow(y); for(short x=(short) (8-y);x<9;)...{ HSSFCell cell = row.createCell(x); x++; cell.setCellValue((9-y)+"*"+x+"="+(9-y)*x); } } //method 2 HSSFSheet sheet2 = wb.createSheet("9-9 v2"); for(short y=0;y<9;y++)...{ row = sheet2.createRow(y); for(short x=(short)(8-y);x<9;)...{ HSSFCell cell = row.createCell(x); x++; cell.setCellValue((9-y)+"*"+x+"="+(9-y)*x); } } // Write the output to a file try...{ FileOutputStream fileOut =new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); }catch (FileNotFoundException e) ...{ // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) ...{ // TODO Auto-generated catch block e.printStackTrace(); } } /** *//** * Creates a cell and aligns it a certain way. * * @param wb the workbook * @param row the row to create the cell in * @param column the column number to create the cell in * @param align the alignment for the cell. */ privatestaticvoid createCell(HSSFWorkbook wb, HSSFRow row, short column, short align) ...{ HSSFCell cell = row.createCell(column); cell.setCellValue("Align It"); HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(align); cell.setCellStyle(cellStyle); } }
short rownum; // create a new file FileOutputStream out=new FileOutputStream("workbook.xls"); // create a new workbook HSSFWorkbook wb =new HSSFWorkbook(); // create a new sheet HSSFSheet s = wb.createSheet(); // declare a row object reference HSSFRow r =null; // declare a cell object reference HSSFCell c =null; // create 3 cell styles HSSFCellStyle cs = wb.createCellStyle(); HSSFCellStyle cs2 = wb.createCellStyle(); HSSFCellStyle cs3 = wb.createCellStyle(); HSSFDataFormat df = wb.createDataFormat(); // create 2 fonts objects HSSFFont f = wb.createFont(); HSSFFont f2 = wb.createFont(); //set font 1 to 12 point type f.setFontHeightInPoints((short) 12); //make it blue f.setColor( (short)0xc ); // make it bold //arial is the default font f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //set font 2 to 10 point type f2.setFontHeightInPoints((short) 10); //make it red f2.setColor( (short)HSSFFont.COLOR_RED ); //make it bold f2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); f2.setStrikeout( true ); //set cell stlye cs.setFont(f); //set the cell format cs.setDataFormat(df.getFormat("#,##0.0")); //set a thin border cs2.setBorderBottom(cs2.BORDER_THIN); //fill w fg fill color cs2.setFillPattern((short) HSSFCellStyle.SOLID_FOREGROUND); //set the cell format to text see HSSFDataFormat for a full list cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text")); // set the font cs2.setFont(f2); // set the sheet name in Unicode wb.setSheetName(0, "Тестовая "+ "Страничка", HSSFWorkbook.ENCODING_UTF_16 ); // in case of compressed Unicode // wb.setSheetName(0, "HSSF Test", HSSFWorkbook.ENCODING_COMPRESSED_UNICODE ); // create a sheet with 30 rows (0-29) for (rownum = (short) 0; rownum <30; rownum++) ...{ // create a row r = s.createRow(rownum); // on every other row if ((rownum %2) ==0) ...{ // make the row height bigger (in twips - 1/20 of a point) r.setHeight((short) 0x249); } //r.setRowNum(( short ) rownum); // create 10 cells (0-9) (the += 2 becomes apparent later for (short cellnum = (short) 0; cellnum <10; cellnum +=2) ...{ // create a numeric cell c = r.createCell(cellnum); // do some goofy math to demonstrate decimals c.setCellValue(rownum *10000+ cellnum + (((double) rownum /1000) + ((double) cellnum /10000))); String cellValue; // create a string cell (see why += 2 in the c = r.createCell((short) (cellnum +1)); // on every other row if ((rownum %2) ==0) ...{ // set this cell to the first cell style we defined c.setCellStyle(cs); // set the cell's string value to "Test" c.setEncoding( HSSFCell.ENCODING_COMPRESSED_UNICODE ); c.setCellValue( "Test" ); } else ...{ c.setCellStyle(cs2); // set the cell's string value to "Тест" c.setEncoding( HSSFCell.ENCODING_UTF_16 ); c.setCellValue( "Тест" ); } // make this column a bit wider s.setColumnWidth((short) (cellnum +1), (short) ((50*8) / ((double) 1/20))); } } //draw a thick black border on the row at the bottom using BLANKS // advance 2 rows rownum++; rownum++; r = s.createRow(rownum); // define the third style to be the default // except with a thick black border at the bottom cs3.setBorderBottom(cs3.BORDER_THICK); //create 50 cells for (short cellnum = (short) 0; cellnum <50; cellnum++) ...{ //create a blank type cell (no value) c = r.createCell(cellnum); // set it to the thick black border style c.setCellStyle(cs3); } //end draw thick black border // demonstrate adding/naming and deleting a sheet // create a sheet, set its title then delete it s = wb.createSheet(); wb.setSheetName(1, "DeletedSheet"); wb.removeSheetAt(1); //end deleted sheet // write the workbook to the output stream // close our file (don't blow out our file handles wb.write(out); out.close();