官方demo 创建一个excel

//创建一个文件
		try {
			FileOutputStream out = new FileOutputStream("workbook1.xls");
			//创建一个//创建一页		
			Workbook wb = new HSSFWorkbook();
			//创建一页
			Sheet s = wb.createSheet();
			//声明一个引用对象row
			Row r = null;
			//声明一个引用对象cell
			Cell c = null;
			//创建3个cell样式对象
			CellStyle cs = wb.createCellStyle();
			CellStyle cs2 = wb.createCellStyle();
			CellStyle cs3 = wb.createCellStyle();
			DataFormat df = wb.createDataFormat();
			//创建2个字体样式
			Font f = wb.createFont();
			Font f2 = wb.createFont();
			//设置字体f的具体大小样式
			f.setFontHeightInPoints((short) 12);
			f.setColor( (short)0xc );
			// make it bold
			//arial is the default font   设置字体粗细
			f.setBoldweight(Font.BOLDWEIGHT_BOLD);

			//set font 2 to 10 point type   设置字体大小
			f2.setFontHeightInPoints((short) 10);
			//make it red  设置字体颜色
			f2.setColor( (short)Font.COLOR_RED );
			//make it bold   设置字体粗细
			f2.setBoldweight(Font.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) CellStyle.THICK_BACKWARD_DIAG);
			//set the cell format to text see DataFormat for a full list  设置单元格内容格式这里为文本格式
			cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));

			// set the font 为单元格样式cs2添加字体样式f2
			cs2.setFont(f2);

			// set the sheet name in Unicode 设置sheet名称
			wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F " + 
					"\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430" );
			// in case of plain ascii
			// wb.setSheetName(0, "HSSF Test");
			// create a sheet with 30 rows (0-29)  创建一个sheet为30行
			int rownum;
			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.setCellValue( "Test" );
					}
					else
					{
						c.setCellStyle(cs2);
						// set the cell's string value to "\u0422\u0435\u0441\u0442"
						c.setCellValue( "\u0422\u0435\u0441\u0442" );
					}


					// 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();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

猜你喜欢

转载自a754782339.iteye.com/blog/2241527
今日推荐