/** |
* 新建一个Excel文件,里面添加5行5列的内容,再添加两个高度为2的大单元格。 |
* |
* @param fileName |
*/ |
public void writeExcel(String fileName) { |
// 目标文件 |
File file = new File(fileName); |
FileOutputStream fOut = null ; |
try { |
// 创建新的Excel 工作簿 |
HSSFWorkbook workbook = new HSSFWorkbook(); |
// 在Excel工作簿中建一工作表,其名为缺省值。 |
// 也可以指定工作表的名字。 |
HSSFSheet sheet = workbook.createSheet( "Test_Table" ); |
// 创建字体,红色、粗体 |
HSSFFont font = workbook.createFont(); |
font.setColor(HSSFFont.COLOR_RED); |
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); |
// 创建单元格的格式,如居中、左对齐等 |
HSSFCellStyle cellStyle = workbook.createCellStyle(); |
// 水平方向上居中对齐 |
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); |
// 垂直方向上居中对齐 |
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); |
// 设置字体 |
cellStyle.setFont(font); |
// 下面将建立一个4行3列的表。第一行为表头。 |
int rowNum = 0 ; // 行标 |
int colNum = 0 ; // 列标 |
// 建立表头信息 |
// 在索引0的位置创建行(最顶端的行) |
HSSFRow row = sheet.createRow(( short ) rowNum); |
// 单元格 |
HSSFCell cell = null ; |
for (colNum = 0 ; colNum < 5 ; colNum++) { |
// 在当前行的colNum列上创建单元格 |
cell = row.createCell(( short ) colNum); |
// 定义单元格为字符类型,也可以指定为日期类型、数字类型 |
cell.setCellType(HSSFCell.CELL_TYPE_STRING); |
// 定义编码方式,为了支持中文,这里使用了ENCODING_UTF_16 |
cell.setEncoding(HSSFCell.ENCODING_UTF_16); |
// 为单元格设置格式 |
cell.setCellStyle(cellStyle); |
// 添加内容至单元格 |
cell.setCellValue( "表头名-" + colNum); |
} |
rowNum++; |
for (; rowNum < 5 ; rowNum++) { |
// 新建第rowNum行 |
row = sheet.createRow(( short ) rowNum); |
for (colNum = 0 ; colNum < 5 ; colNum++) { |
// 在当前行的colNum位置创建单元格 |
cell = row.createCell(( short ) colNum); |
cell.setEncoding(HSSFCell.ENCODING_UTF_16); |
cell.setCellStyle(cellStyle); |
cell.setCellValue( "值-" + rowNum + "-" + colNum); |
} |
} |
// 合并单元格 |
// 先创建2行5列的单元格,然后将这些单元格合并为2个大单元格 |
rowNum = 5 ; |
for (; rowNum < 7 ; rowNum++) { |
row = sheet.createRow(( short ) rowNum); |
for (colNum = 0 ; colNum < 5 ; colNum++) { |
// 在当前行的colNum位置创建单元格 |
cell = row.createCell(( short ) colNum); |
} |
} |
// 建立第一个大单元格,高度为2,宽度为2 |
rowNum = 5 ; |
colNum = 0 ; |
Region region = new Region(rowNum, ( short ) colNum, (rowNum + 1 ), |
( short ) (colNum + 1 )); |
sheet.addMergedRegion(region); |
// 获得第一个大单元格 |
cell = sheet.getRow(rowNum).getCell(( short ) colNum); |
cell.setEncoding(HSSFCell.ENCODING_UTF_16); |
cell.setCellStyle(cellStyle); |
cell.setCellValue( "第一个大单元格" ); |
// 建立第二个大单元格,高度为2,宽度为3 |
colNum = 2 ; |
region = new Region(rowNum, ( short ) colNum, (rowNum + 1 ), |
( short ) (colNum + 2 )); |
sheet.addMergedRegion(region); |
// 获得第二个大单元格 |
cell = sheet.getRow(rowNum).getCell(( short ) colNum); |
cell.setEncoding(HSSFCell.ENCODING_UTF_16); |
cell.setCellStyle(cellStyle); |
cell.setCellValue( "第二个大单元格" ); |
// 工作薄建立完成,下面将工作薄存入文件 |
// 新建一输出文件流 |
fOut = new FileOutputStream(file); |
// 把相应的Excel 工作簿存盘 |
workbook.write(fOut); |
fOut.flush(); |
// 操作结束,关闭文件 |
fOut.close(); |
System.out |
.println( "Excel文件生成成功!Excel文件名:" + file.getAbsolutePath()); |
} catch (Exception e) { |
System.out |
.println( "Excel文件" + file.getAbsolutePath() + "生成失败:" + e); |
} finally { |
if (fOut != null ) { |
try { |
fOut.close(); |
} catch (IOException e1) { |
} |
} |
} |
} |
初级程序员
by: 简明 发表于:2017-11-27 16:37:33 顶(3) | 踩(3) 回复
谢谢分享,好好学习
回复评论