//创建一个文件
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();
}
官方demo 创建一个excel
最新推荐文章于 2022-10-31 23:06:58 发布